Sql server SQL Server日期转换问题
我有一张以这种格式显示日期的表格。YYYYDDD 我需要将它们转换为YYYY-MM格式 例如,我有一个日期Sql server SQL Server日期转换问题,sql-server,Sql Server,我有一张以这种格式显示日期的表格。YYYYDDD 我需要将它们转换为YYYY-MM格式 例如,我有一个日期2016003,所以应该变成2016-01 同样地,2016055的日期应变为2016-02 有没有一种方法可以在不创建用户函数的情况下显示这些内容 谢谢我认为最简单的方法是在年初加上天数。因此,要获得日期: select dateadd(day, cast(right(col, 3) as int) - 1, cast(left(col, 4) + '01-0
2016003
,所以应该变成2016-01
同样地,2016055
的日期应变为2016-02
有没有一种方法可以在不创建用户函数的情况下显示这些内容
谢谢我认为最简单的方法是在年初加上天数。因此,要获得日期:
select dateadd(day, cast(right(col, 3) as int) - 1,
cast(left(col, 4) + '01-01' as date)
) as dte
然后可以根据需要格式化它。例如,在SQL Server 2012+中,可以使用format()
:
请记住,当前表中的不是日期。它们是代表日期的数字。如果可能,您应该停止将日期信息存储为数字或字符串。它们应存储为日期或日期时间。这会让你的生活变得不那么痛苦。
select format(dateadd(day, cast(right(col, 3) as int) - 1,
cast(left(col, 4) + '01-01' as date)
), 'YYYYMM'
) as yyyymm