Julian 日期到日期时间 SQL 服务器

Julian Date to Datetime SQL Server

我在 table

中有以下列
Year    Julian_Day  Time_HHMM   Seconds Decimal_Day
2015    271             2000       0        0.7415013

输出日期时间是"2015-09-28 20:00:00"

我试图弄清楚如何将这些参数转换为日期时间,但我没有运气。 欢迎任何帮助

[https://social.msdn.microsoft.com/Forums/sqlserver/en-US/47d773c3-dae2-41cc-8770-5f2f24a1c665/julian-date-to-datetime-conversion][1]

SELECT DATEADD(YEAR, @JulianDate / 1000 - 1900, @JulianDate % 1000 - 1)

您应该能够通过为各种组件嵌套调用 DATEADD 函数来做到这一点:

SELECT DATEADD(SECOND, [Seconds], DATEADD(MINUTE, CAST(RIGHT([Time_HHMM], 2) AS INT), DATEADD(HOUR, CAST(LEFT([Time_HHMM], 2) AS INT), DATEADD(DAY, [Julian_Day] - 1, DATEADD(YEAR, [Year] - 1900, 0)))))
FROM   YourTable

请注意,我没有使用 Decimal_Day 列。

DATEADD 为组件采用整数参数,因此如果列当前的类型为 VARCHAR,则您可能需要对列进行一些额外的强制转换。