mysql选择a和b之间的时间戳,返回全部或0个时间戳

mysql选择a和b之间的时间戳,返回全部或0个时间戳,mysql,timestamp,Mysql,Timestamp,试过这个 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 <= 1336170

试过这个

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 <= 1336170420

我想我错过了什么,但找不到什么

为什么不在使用sql代码时将_unixtime(timestamp/1000)中的时间戳转换为dateTime?你试过了吗?

MySQL期望的是,而不是整数:

SELECT *
FROM   table
WHERE  DATE(timestamp_field) BETWEEN '2012-03-01' AND '2012-05-04'
要使用整数(假设它们是UNIX纪元之后的秒数),请首先使用MySQL函数转换它们:

SELECT *
FROM   table
WHERE  timestamp_field BETWEEN FROM_UNIXTIME(1330560000)
                           AND FROM_UNIXTIME(1336170420)
或用于将列转换为其UNIX表示形式:

SELECT *
FROM   table
WHERE  UNIX_TIMESTAMP(timestamp_field) BETWEEN 1330560000 AND 1336170420

您是将时间戳存储为int还是varchar?请尝试使用phpmyadmin中的structure选项卡将类型更改为int,除非您依赖mysql在某个地方生成当前时间戳,而您实际上不需要将时间戳指定为datatypedon。举个例子是有用的。我真的试着理解mysql是如何处理日期和时间的,但没有成功:(啊,eggyal打败了我,这就是我的目的。如果在贝尔格莱德附近,欢迎你来点啤酒和烤肉串;)这帮我节省了一个晚上
SELECT *
FROM   table
WHERE  timestamp_field BETWEEN FROM_UNIXTIME(1330560000)
                           AND FROM_UNIXTIME(1336170420)
SELECT *
FROM   table
WHERE  UNIX_TIMESTAMP(timestamp_field) BETWEEN 1330560000 AND 1336170420