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"
我试图弄清楚如何将这些参数转换为日期时间,但我没有运气。
欢迎任何帮助
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,则您可能需要对列进行一些额外的强制转换。
我在 table
中有以下列Year Julian_Day Time_HHMM Seconds Decimal_Day
2015 271 2000 0 0.7415013
输出日期时间是"2015-09-28 20:00:00"
我试图弄清楚如何将这些参数转换为日期时间,但我没有运气。 欢迎任何帮助
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,则您可能需要对列进行一些额外的强制转换。