我想把monthly_dates转换成季度,但是我想用0来表示一位数。即,在SQL查询I do: QUARTER( monthly_date )*3-2 AS varchar中,monthly_date= '2015-01-01‘,但这给了我'1’而不是'01‘。
有没有办法让它给我'01','04','07‘和'10'?
发布于 2016-04-22 19:52:27
你能有大于4的季度数吗?
不管怎样..。您可以按您希望的方式填充数字(请务必查看SQL参考手册>函数>格式化函数)。
例如:
SQL> select to_char( 4 , '09' ) ;
to_char
---------
04
SQL> select to_char( 12 , '09' ) ;
to_char
---------
12发布于 2016-04-22 02:43:08
我承认,这是一种蛮力方法,但我过去曾使用过它。给定这4个变量,我可以计算填充为0的StartCalendarId
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))
)https://stackoverflow.com/questions/36777639
复制相似问题