SQL:如何根据年和日数得到日期yyyy / mm / dd?

时间:2017-04-24 21:11:14

标签: sql sql-server tsql

例如,我有以下字符串2015089或2016075。

我需要根据给定的输入以yyyy/mm/dd格式获得结果。

所以,基于2015089,我得到了2015/mm/dd。 dd是2015年的第89天,mm是第89天的月份。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

我认为最简单的方法是使用dateadd()转换为日期:

select dateadd(day, right(str, 3) - 1, datefromparts(left(str, 4) + 0, 1, 1) )

即,添加一个比年初的天数少一个。这假定Jan 1表示为" 1"而不是" 0"。

然后,您可以根据自己的喜好格式化日期。

在SQL Server 2012之前,您可以执行以下操作:

select dateadd(day, right(str, 3) - 1, cast(left(str, 4) + '0101' as date))