SQL将季度日期编号转换为字符串填充0作为小于10的数字的前缀
我想将每月的_日期转换为季度,但我想用0来传递一位数字。 即。, 月日='2015-01-01' 在SQL查询中,我执行以下操作: 四分之一月日*3-2为varchar 但这给了我“1”而不是“01”SQL将季度日期编号转换为字符串填充0作为小于10的数字的前缀,sql,vertica,Sql,Vertica,我想将每月的_日期转换为季度,但我想用0来传递一位数字。 即。, 月日='2015-01-01' 在SQL查询中,我执行以下操作: 四分之一月日*3-2为varchar 但这给了我“1”而不是“01” 有没有办法让它给我'01'、'04'、'07'和'10'?我承认,这是一种蛮力方法,但我过去用过。 给定这4个变量,我可以计算带有填充0的StartCalendand Declare @StartDate date Declare @StartYear int Declare @StartMont
有没有办法让它给我'01'、'04'、'07'和'10'?我承认,这是一种蛮力方法,但我过去用过。 给定这4个变量,我可以计算带有填充0的StartCalendand
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))
)
你能有大于4的四分之一数字吗 无论如何。。。您可以按需要的方式填充数字。请确保检查SQL参考手册>SQL函数>格式化函数 例如:
SQL> select to_char( 4 , '09' ) ;
to_char
---------
04
SQL> select to_char( 12 , '09' ) ;
to_char
---------
12
是的,但这取决于您使用的SQL引擎可能与@juergend重复,谢谢。我使用的不是SQL Server实际上,它是我的一个SQL存储过程中的精确代码。这个想法是,给定一个日期,你可以用整数形式的填充零来表示日期;这是问题中标记的数据库。