Sql server 将长java日期时间转换为SQL Server日期时间

Sql server 将长java日期时间转换为SQL Server日期时间,sql-server,datetime,Sql Server,Datetime,我的1579537505834很长,表示日期和时间2020-01-20 17:25:05.833 我尝试将其转换为SQL Server的datetime值: select convert(datetime, (((1579537505834) / (1000.0 * 60.0 * 60.0 * 24.0)) + 25567)) 但结果是:2020-01-20 16:25:05.833:1小时的错误 谢谢 编辑:问题是+1时区!我该怎么办 EDIT2:对于PostgreSQL,我没有

我的
1579537505834
很长,表示日期和时间
2020-01-20 17:25:05.833

我尝试将其转换为SQL Server的
datetime
值:

select 
    convert(datetime, (((1579537505834) / (1000.0 * 60.0 * 60.0 * 24.0)) +  25567))
但结果是:
2020-01-20 16:25:05.833
:1小时的错误

谢谢

编辑:问题是+1时区!我该怎么办

EDIT2:对于PostgreSQL,我没有这个问题

SELECT to_timestamp (1579537505834 / 1000)
编辑3: 解决方案

select convert(datetime,(((cast(1579537505834 as bigint)) / (1000.0 * 60.0 * 60.0 * 24.0)) + 25567 ))+cast(DateDiff(Hour, GetUTCDate(), GetDate()) as numeric(35,15))/24

工作!谢谢大家

AT时区可以切换时区(这是ISO SQL标准运算符):


另一种计算新日期的方法,我认为会更快,但松散的ms是:

SELECT DATEADD(s, 1579537505834.0 / 1000, '1970-01-01')
可以代替

CONVERT(datetime, (((1579537505834) / (1000.0 * 60.0 * 60.0 * 24.0)) +  25567))

在线转换器也将该数字转换为16:25。你确定现在是17:25吗?是的,够了,但我又做了一些测试。。sqlserver中的转换功能是否正确?问题是添加时区:GMT:2020年1月20日星期一16:25:05.834您的时区:lunedì20 gennaio 2020 17:25:05.834 GMT+01:00夏令时和/或时区是否会导致此问题?我不知道这是否有帮助,但您可以使用以下命令获取时区偏移:Select DateDiff(Hour,GetUTCDate(),GetDate())我尝试(选择DATEADD(s,1579594224900/1000,'1970-01-01'))日期是2020-01-21 09:10:24.000,但结果是2020-01-21 08:10:24.000请查看EDIT3。非常感谢!
CONVERT(datetime, (((1579537505834) / (1000.0 * 60.0 * 60.0 * 24.0)) +  25567))