在SQL中将日历日期的数量转换为日期

时间:2014-06-24 18:37:39

标签: sql sql-server

有174种方法可以将其转换为显示完整日期吗? 例如:174应该是06/23/2014,这是一年中的第174天。我的数据看起来像2014174.这是否有SQL函数?

谢谢

4 个答案:

答案 0 :(得分:2)

DECLARE @DATEINT  INT
SET @DATEINT = 2014174
select DATEADD(YEAR, @DATEINT/1000-1900,DATEADD(day, @DATEINT%1000 - 1, 0))

答案 1 :(得分:1)

您可以使用如下所示的dateadd函数来完成您要找的内容。

declare @inputNumber int
set @inputNumber = 174
select dateadd(day,(@inputNumber-1),'1/1/'+cast (year(getdate())as varchar(10)))

答案 2 :(得分:0)

Select dateadd(dd,174,dateadd(yy,year(getdate(),0)))

答案 3 :(得分:0)

这是一种非常动态的方法。它适用于可变长度输入,如201450或2014364等。

declare @myDate varchar(10)
declare @dayPart int
declare @yearPart int
declare @dDate datetime
set @myDate = '201459'
set @yearPart = left(@myDate,4)
set @dayPart = right(@myDate, len(@myDate)-4)

select @yearPart, @dayPart


set @dDate = '01/01/' + cast(@yearPart as varchar(4))
select @dDate
select dateadd(dd,@dayPart, @dDate)

输出:03/01/2014 - 2014年第59天。