如何在MySQL查询中格式化Unix时间戳并去除.000000后缀
.000000后缀的含义
这6位小数是时间戳的微秒精度位:
MySQL 5.6.4及以上版本对UNIX_TIMESTAMP()函数做了精度扩展,支持返回秒以下的时间精度。如果传入的时间字段包含微秒信息,小数点后会返回对应的微秒数值;你当前查询结果里全为0,是因为存储的fieldset_change_tracker_value字段本身没有保存微秒维度的时间信息,系统默认补0展示。
去除后缀的常用方法
你可以通过修改SQL直接返回整数格式的时间戳,也可以在业务代码中处理结果:
- 方案1:使用
FLOOR()函数向下取整,最稳妥,不会出现精度偏差
示例SQL:SELECT FLOOR(unix_timestamp(fieldset_change_tracker_value)) FROM node_revision__fieldset_change_tracker; - 方案2:使用
CAST()函数强制转换为无符号整数
示例SQL:SELECT CAST(unix_timestamp(fieldset_change_tracker_value) AS UNSIGNED) FROM node_revision__fieldset_change_tracker; - 方案3:在业务代码中处理,直接将返回的浮点型结果转换为整数类型,无需修改SQL语句。
内容的提问来源于stack exchange,提问作者awm
相关产品推荐
相关产品推荐

