sql-server - 将长 java 日期时间转换为 SQL Server 日期时间
问题描述
我有1579537505834
很长,代表一个日期和时间2020-01-20 17:25:05.833
。
我尝试将其转换datetime
为 SQL Server 的值:
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)
EDIT3:解决方案
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
工作!谢谢大家!
解决方案
我认为另一种计算新日期的方法会更快,但松散的 ms 是:
SELECT DATEADD(s, 1579537505834.0 / 1000, '1970-01-01')
可以更换
CONVERT(datetime, (((1579537505834) / (1000.0 * 60.0 * 60.0 * 24.0)) + 25567))
推荐阅读
- laravel - 每个注册只显示一个列表项
- javascript - 如何在 React 中使用 props 处理参数?
- google-sheets - 使用 Google 表格比较两列
- mysql - 在所有列中将字符集 Latin1 转换为 Utf-8
- python - 列表列表与列表列表的乘法
- powershell - 检查文件是否存在并移动重复项
- php - Ajax:php 部分在一个函数中需要引号,但在另一个函数中不需要
- python - Gremlin Python:在列表中返回顶点 ID 和边属性
- sql - 非透视场景sql中的case语句
- python - 具有多个标题/标题的 Python PrettyTable