我想将monthly_dates转换为quarter,但我希望将0位数的单位数转换为。 即, monthly_date =' 2015-01-01' 在SQL查询中我做: QUARTER(monthly_date)* 3-2 AS varchar 但这给了我' 1'而不是' 01'
有没有办法让它给我' 01' 04',' 07'和' 10'?
答案 0 :(得分:0)
你能有四分之一大于4的?
无论如何......你可以按照你想要的方式填充数字(请务必查看 SQL参考手册> SQL函数>格式化函数)。
例如:
SQL> select to_char( 4 , '09' ) ;
to_char
---------
04
SQL> select to_char( 12 , '09' ) ;
to_char
---------
12
答案 1 :(得分:-1)
我承认,这是一种蛮力方法,但我过去曾使用它。 给定这4个变量,我可以用填充的0&#39>来计算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))
)