【发布时间】:2020-09-03 15:19:38
【问题描述】:
我正在尝试在 SQL Server 中将 7 位 julian/mainframe 日期转换为 mmddyy 格式的日历日期。 一个例子是朱利安日期 2005020,其中前 4 位数字是 2005 年,后三位是日历中的日期,所以 020 = 1 月 20 日。所以我需要在 SQL Server 中将此日期设为 012005(MMDDYY)。
我一直在使用以下查询,但在加载几条记录后一直收到错误:
SELECT DATEADD(day,CAST(RIGHT([julianDateColumn],3) as int)-,LEFT([julianDateColumn],4))
我遇到的错误:
从字符串转换日期和/或时间时转换失败。
最初我是在 Access DB 中使用“DATESERIAL”函数执行此操作的,但据我所知,与 SQL Server 中最接近的是“DATEFROMPARTS”,我尝试使用以下公式,但它也没有工作:
DATEFROMPARTS([julianDateColumn]/1000,1,[julianDateColumn] % 1000)
提前致谢!
【问题讨论】:
-
跳过 YYMMDD,改用 YYYY-MM-DD! (我认为 050120 是 2020 年 5 月 1 日,还是 1 月 5 日?)
-
070809@jarlh 呢?是 2009 年 8 月 7 日、2009 年 7 月 8 日、2007 年 8 月 9 日,还是 2007 年 9 月 8 日。;) -
@Larnu,我的祖母出生于 1907 年。看起来像是当年的约会。
-
当然,不列出 1907 年 8 月 9 日是多么愚蠢。:)
标签: sql sql-server datetime julian-date