我想以日期格式转换朱利安日期。 下面,请找一个创建错误的示例。我的所有日期都有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对于子字符串函数的参数无效
答案 0 :(得分:3)
您只需将 INT 值转换为 DATETIME 即可。
例如:
SELECT CAST(39596 AS DATETIME); -- Returns 2008-05-30 00:00:00.000