我试过了
select * from table where timestamp_field between 1330560000 and 1336170420还有这个
select * from table where timestamp_field >=1330560000 and timestamp_field<=1336170420两者都返回空的结果集。
但这是
select * from table where timestamp_field >= 1330560000返回所有行
让事情变得更加荒谬
select * from table where timestamp_field <= 1336170420返回空结果集。
当然,在1336170420=4.may 2012之前、之间和之后都存在时间戳值。和1330560000=1.march 2012。
时间戳值是可以的,至少phpmyadmin显示了正确的(人类可读的)日期-时间值。我通过解析字符串创建了时间戳,
UPDATE table SET timestamp_field = STR_TO_DATE(timestamp_string, '%d.%m.%Y')我想我错过了什么,但找不到什么!?
发布于 2012-06-05 05:16:36
MySQL需要date literals,而不是整数:
SELECT *
FROM table
WHERE DATE(timestamp_field) BETWEEN '2012-03-01' AND '2012-05-04'要使用整数(假设它们是从UNIX纪元开始的秒数),首先使用MySQL的FROM_UNIXTIME()函数转换它们:
SELECT *
FROM table
WHERE timestamp_field BETWEEN FROM_UNIXTIME(1330560000)
AND FROM_UNIXTIME(1336170420)或者使用UNIX_TIMESTAMP()将您的列转换为其UNIX表示:
SELECT *
FROM table
WHERE UNIX_TIMESTAMP(timestamp_field) BETWEEN 1330560000 AND 1336170420发布于 2012-06-05 04:59:35
为什么不在使用sql代码时将时间戳from_unixtime(timestamp/1000)转换为dateTime?你试过吗?
https://stackoverflow.com/questions/10888194
复制相似问题