【发布时间】:2012-06-04 20:53:01
【问题描述】:
试过了
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')
我猜我遗漏了什么,但找不到什么!?
【问题讨论】:
-
您是将时间戳存储为 int 还是 varchar?
-
尝试使用 phpmyadmin 中的结构选项卡将类型更改为 int,除非您依赖 mysql 在不需要将时间戳指定为数据类型的地方生成当前时间戳