在mysql时间戳上选择日期范围

时间:2012-11-16 14:43:28

标签: mysql sql

我正在尝试以下但没有结果:

SELECT *
FROM users_test
WHERE dateadded >= UNIX_TIMESTAMP('2012-02-01 00:00:00') 
AND dateadded <  UNIX_TIMESTAMP('2012-11-01 00:00:00');

但我知道有一些日期在该范围内的列,例如。

2012-05-11 17:10:08

有更好的方法吗?

最终我想搜索多个参数,虽然不是在同一时间,如今天,昨天,上周,上个月等,还有日期范围和月份范围

4 个答案:

答案 0 :(得分:13)

你试过吗?

SELECT *
FROM users_test
WHERE dateadded >= '2012-02-01 00:00:00'
AND dateadded <  '2012-11-01 00:00:00'

对于我所看到的,似乎您的表以与查找它相同的方式存储数据(2012-05-11 17:10:08),因此在这种情况下您将不需要UNIX_TIMESTAMP。

此外,我可以看到您要从结果中排除第二个日期(因为您使用的是<而不是<=),否则使用WHERE dateadded BETWEEN '2012-02-01 00:00:00' AND '2012-11-01 00:00:00'也可以。

答案 1 :(得分:5)

只需使用SQL BETWEEN关键字即可。就这样。

答案 2 :(得分:3)

试试这个:

SELECT * FROM 
      users_test
 WHERE
     dateadded BETWEEN '2012-02-01 00:00:00' AND '2012-11-01 00:00:00'

答案 3 :(得分:0)

SELECT * FROM table_name WHERE DATE(date_field) between '2015-05-10' and '2015-05-21`