sql-server - 在 SQL Server 中将 UTC 毫秒转换为 DATETIME

标签 sql-server datetime sql-server-2005 utc

我想在 SQL Server 中将 UTC 毫秒转换为 DateTime。

这可以通过以下代码在 C# 中轻松完成:

DateTime startDate = new DateTime(1970, 1, 1).AddMilliseconds(1348203320000);

我需要在 SQL Server 中执行此操作。我找到了一些脚本here ,但这是从 1900-01-01 开始的初始刻度。

我使用了DATEADD函数,如下所示,但这通过提供毫秒作为差异而给出了算术溢出异常:

SELECT DATEADD(MILLISECOND,1348203320000,'1970-1-1')

如何正确进行转换?

最佳答案

DECLARE @UTC BIGINT
SET @UTC = 1348203320997 

SELECT DATEADD(MILLISECOND, @UTC % 1000, DATEADD(SECOND, @UTC / 1000, '19700101'))

关于sql-server - 在 SQL Server 中将 UTC 毫秒转换为 DATETIME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12524537/

相关文章:

sql - TSQL 返回 NO 或 YES,而不是 TRUE 或 FALSE

sql - 组合没有唯一值的行

sql-server - asp.net mvc 连接数据库的最佳方式

sql - 显示表中不存在的 where 子句的元素

sql-server - 复制整个数据库内容(架构和数据)

javascript - 无需插件即可以特定格式获取 jquery 中的时间戳

function - 如何在 SQLite3 中将日期时间字符串转换为 UNIX 时间戳?

javascript - 从字符串转换时间时,setHours 不是函数

sql - SQL Server-使用其他列值作为CSV更新列

sql-server-2005 - 更新而不是删除然后插入同一个表有什么好处