时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数;
注意 :我们用的是北京时间 需要函数 参数里面要写 1970-01-01 08:00:00 ,好多教程里面 写的是 1970-01-01 00:00:00 导致转换后时间少了8个小时;
DECLARE @timestamp VARCHAR(19)= '1710347106000'
-- 默认 精确到 毫秒
SELECT DATEADD(SECOND, CAST(@timestamp AS BIGINT) / 1000, '1970-01-01 08:00:00')
-- 年月日 时分秒
SELECT CONVERT(varchar,DATEADD(SECOND, CAST(@timestamp AS BIGINT) / 1000, '1970-01-01 08:00:00'),120)
-- 年月日
SELECT CONVERT(VARCHAR(10),DATEADD(SECOND, CAST(@timestamp AS BIGINT) / 1000, '1970-01-01 08:00:00'),120)
日期转时间戳
-- 获取某个日期的时间戳
DECLARE @dates VARCHAR(19)= '2024-01-01 00:00:00'
SELECT DATEDIFF(SECOND,'1970-01-01 08:00:00', @dates)
--获取当前时间戳
SELECT DATEDIFF(SECOND,'1970-01-01 08:00:00', GETDATE())