繁体   English   中英

如何在SQL Server中将朱利安日期的时间部分(HH:MM:SS)转换为正常日期时间?

[英]How can we convert the time portion(HH:MM:SS) of a julian date to normal date time in sql server?

我的表TimeUpdated中有一列,但是从源到达此列的数据是儒略日期时间格式。

我在下面的查询中找到了将julian timestam的Date部分转换为正常时间戳的查询-

 declare @a as int = 2458228
 select @a, dateadd(d,@a - 2440588,'1970-01-01')

但我不知道如何转换时分秒部分。 有人可以帮忙吗? 提前致谢。

PS-朱利安语中的2458228.05929是指19-04-2018 18:55:20 IST。 您也可以参考该站点,该站点会将任何日期转换为朱利安日期时间-http: //www.onlineconversion.com/julian_date.htm

如果我正确理解,那么正确的表达将是:

DECLARE @a int = '2440588';
DECLARE @Julian decimal(16,5) = 2458228.05929;

SELECT DATEADD(DAY,CONVERT(int,@Julian) - @a, '19700101') +
       DATEADD(HOUR,12,DATEADD(SECOND,(60 * 60 * 24) * (@Julian - convert(int,@Julian)),0));

这给出了UTC时间2018-04-19 13:25:22.000 (如果转换为IST(对于不知道其时区的人来说是印度标准时间(UTC +5:30)),则为2018-04-19 18:55:22.000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM