我的表格中有一列 - TimeUpdated ,但是来自此列的数据源自Julian日期时间格式。
我发现以下查询将julian timestam的Date部分转换为正常时间戳 -
declare @a as int = 2458228
select @a, dateadd(d,@a - 2440588,'1970-01-01')
但我无法弄清楚如何转换小时 - 分钟 - 秒部分。有人可以帮忙吗?提前谢谢。
P.S。 - Julian的2458228.05929表示19-04-2018 18:55:20 IST。您也可以参考此网站,它将任何一天转换为Julian Datetime - http://www.onlineconversion.com/julian_date.htm
答案 0 :(得分:1)
如果我理解正确,那么正确的表达方式是:
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
。