在MSSQL中,将时间戳转换为日期的最简单方法是使用DATEADD和DATEDIFF函数。假设时间戳是Unix时间戳(从1970-01-01开始的秒数),转换代码如下:
SELECT DATEADD(SECOND, 时间戳字段, '1970-01-01') AS 转换日期 FROM 你的表名;
这个技巧能快速处理大量数据,提升查询效率,避免复杂计算。
CSDN博客
MSSQL Server 中 Unix 时间戳(毫秒)转日期时间:DATEADD(ms, unix_timestamp / 1000 * 1000 + unix_timestamp % 1000, '1970-01-01')。Unix 时间戳(秒)转日期时间:DATEADD(s, unix_timestamp, '1970-01-01')。日期时间转 Unix 时间戳(毫秒):DATEDIFF(s, '1970-01-01', getdate()) * 1000 + DATEPART(ms, getdate())。
博客园
select DATEADD(SS,[unix_timestamp], '1970-01-01') as [Time] from [Table] --秒级时间戳转日期。MSSQL中时间戳转标准时间格式:DATEADD(s,字段名,'1970-1-1'),时间戳转标准时间格式(毫秒):DATEADD(ms,字段名,'1970-1-1')。
简书
SQL Server将时间戳转换为日期时间类型:select dateadd(S,1468531200,'1970-1-1') 时间戳1468531200就是2016年7月16日0时0分0秒。select dateadd(SS,1468531200,'1970-1-1')
阿里云开发者社区
unix时间戳(ms)转日期:DATEADD(ms, unix_timestamp,'1970-01-01 00:00:00')。unix时间戳(s)转日期:DATEADD(s, unix_timestamp,'1970-01-01 00:00:00')。SQL Server日期转unix时间戳(s):DATEDIFF(s,'1970-01-01 00:00:00',getdate())。
OSCHINA
时间戳转换日期:select dateadd(s,unix_timestamp,'1970-01-01')。毫秒时间戳:select dateadd(ms,unix_timestamp,'1970-01-01')。MSSQL时间戳和日期时间相互转换方法。
Cnblogs
Sql Server 数据库时间戳(Unix 时间戳)转日期时间:SELECT DATEADD(SECOND,1462385887,'1970-01-01 00:00:00')。Sql Server 数据库日期时间转时间戳(Unix 时间戳):DATEDIFF(SECOND,'1970-01-01 00:00:00',GETDATE())。
FAQ
Q: 时间戳是秒还是毫秒怎么区分?
A: 秒级时间戳用DATEADD(s, ..., '1970-01-01'),毫秒用DATEADD(ms, ..., '1970-01-01')。
Q: 如何批量转换表中所有时间戳?
A: UPDATE 表名 SET 日期字段 = DATEADD(s, 时间戳字段, '1970-01-01')。
Q: 转换后日期不对怎么办?
A: 检查时间戳单位(秒/毫秒)和时区,通常Unix时间戳是UTC时间。
Q: 日期转回时间戳的代码?
A: DATEDIFF(s, '1970-01-01', 日期字段)。