首页 > 解决方案 > 如何在 mysql 中对 unixtimestamp 执行正确的选择

问题描述

我有带有 UNIX sql 时间戳的表,1615582447receivedOn.

我不确定,如果有一些时间间隔,如何使用这个时间戳。

如何根据用户时区执行 sql 的正确方法是什么?

我当前的代码是(对于Europe/Prague时区):

FROM_UNIXTIME(receivedOn) > ("2021-03-07T23:00:00.000Z") AND FROM_UNIXTIME(receivedOn) < ("2021-03-2021-03-08T22:59:59.999Z") 

但是这个选择在区间之外返回数据。

什么是正确的方法或......更好?

标签: mysqltimestamptimezone

解决方案


这不能以那种形式工作,因为你没有正确的 mysql 时间来比较它

 SELECT FROM_UNIXTIME(1615582447 ) > CONVERT("2021-03-07T23:00:00.000Z", datETIME)

返回真或 1

您应该始终使用 mysql 符合日期和时间,在查询中使用,并让编程语言将其转换为正确的形式


推荐阅读