首页 > 解决方案 > SQL 查询中的位移位

问题描述

id我的表中有一个列,C_Log我想在将此任务与 SELECT 查询的其余部分集成时向右应用 32 位位移!

在 id 上应用位移后,6670501767432108171我应该得到这个时间戳号1553097220(均为十进制)。

标签: mysqlsqltsql

解决方案


在 MySQL 中,您可以直接执行右移:

SELECT ..., (id >> 32) AS ts, ... FROM C_log ...

SQL Server 没有位移,因此您需要进行等效除法并取FLOOR

SELECT ..., (id / 4294967296) AS ts, ... FROM C_log ...

推荐阅读