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 的一致性