SQL Server 2019 普通时间转换成UNIX时间戳
一、前言
由于在查询时,经常使用到 DATETIME2 类型数据 date_time列,查询效率比较低,用时也很长。如果能转换成 BIGINT 类型的 UNIX时间戳 ,那么查询效率肯定会有所提高
表在建立时,没有 UNIX时间戳 ,故需要新建一列 date_time_unix,接着就要根据 date_time列 转换到 date_time_unix列,直到所有行都转换完成...

二、普通时间转换成UNIX时间戳
-
新建一列 date_time_unix
ALTER TABLE student ADD date_time_unix BIGINT NULL -
时间戳转换
DECLARE @stuId int DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT stu_id FROM student) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_Cursor INTO @stuId; --读取第一行数据 WHILE @@FETCH_STATUS = 0 BEGIN PRINT @stuId; --打印数据 UPDATE student SET date_time_unix=(DATEDIFF(S, '1970-01-01 08:00:00', (select date_time from student where stu_id=@stuId))) where stu_id=@stuId; --更新数据 FETCH NEXT FROM My_Cursor INTO @stuId; --读取下一行数据 END CLOSE My_Cursor; --关闭游标 -
查询表
SELECT * FROM student
在unix网站工具 验证date_time_unix 和 date_time 的一致性

浙公网安备 33010602011771号