首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL将季度日期数字转换为字符串填充,将0作为数字< 10的前缀

SQL将季度日期数字转换为字符串填充,将0作为数字< 10的前缀
EN

Stack Overflow用户
提问于 2016-04-22 02:26:33
回答 2查看 283关注 0票数 1

我想把monthly_dates转换成季度,但是我想用0来表示一位数。即,在SQL查询I do: QUARTER( monthly_date )*3-2 AS varchar中,monthly_date= '2015-01-01‘,但这给了我'1’而不是'01‘。

有没有办法让它给我'01','04','07‘和'10'?

EN

回答 2

Stack Overflow用户

发布于 2016-04-22 19:52:27

你能有大于4的季度数吗?

不管怎样..。您可以按您希望的方式填充数字(请务必查看SQL参考手册>函数>格式化函数)。

例如:

代码语言:javascript
复制
SQL> select to_char( 4 , '09' ) ;
 to_char 
---------
   04
SQL> select to_char( 12 , '09' ) ;
 to_char 
---------
   12
票数 0
EN

Stack Overflow用户

发布于 2016-04-22 02:43:08

我承认,这是一种蛮力方法,但我过去曾使用过它。给定这4个变量,我可以计算填充为0的StartCalendarId

代码语言:javascript
复制
Declare @StartDate date
Declare @StartYear int
Declare @StartMonth int
Declare @StartDay int

Set @StartYear = Year(@StartDate)
Set @StartMonth = Month(@StartDate)
Set @StartDay = Day(@StartDate)

Set @StartCalendarId =
(CONVERT([int],
    (((CONVERT([varchar](4),@StartYear)+
    case when len(@StartMonth)=(1) then '0' else '' end)+
    CONVERT([varchar](2),@StartMonth))+
    case when len(@StartDay)=(1) then '0' else '' end)
    +CONVERT([varchar](2),@StartDay))
)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36777639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档