将julian日期转换为sql server中的日期

时间:2015-10-07 08:24:01

标签: sql sql-server tsql sql-server-2012

我想以日期格式转换朱利安日期。 下面,请找一个创建错误的示例。我的所有日​​期都有5个数字我需要转换。

create table #test (dateR int)

    insert into #test (dateR) values
    (39596),(39596),(39595),(39595),(39593),(39592),(39592),(39589),(38104),(38104),(37957)

    SELECT * from #test
    select  *,
    dateadd (year, dateR/1000 - 1900, dateR %1000 - 1) as Rd
    from #test

获取错误:

  

Msg 517,Level 16,State 1,Line 2为'datetime'添加值   列导致溢出。

也尝试过:

SELECT DATEADD(dd, CONVERT(int, RIGHT(dateR,3)) - 1, CONVERT(datetime,SUBSTRING(dateR,1,2)+'0101', 212))

返回:消息8116 16级状态1行1 nullArgument数据类型int对于子字符串函数的参数无效

1 个答案:

答案 0 :(得分:3)

您只需将 INT 值转换为 DATETIME 即可。

例如:

SELECT CAST(39596 AS DATETIME); -- Returns 2008-05-30 00:00:00.000