Loading

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

posted @ 2023-01-09 10:21  eiSouthBoy  阅读(477)  评论(0)    收藏  举报