7

我正在尝试以下但没有得到任何结果:

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

4 回答 4

15

你有没有尝试过?

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'也可以...

于 2012-11-16T14:48:31.240 回答
6

只需使用 SQLBETWEEN关键字。就这样。

于 2012-11-16T14:54:02.983 回答
4

试试这个:

SELECT * FROM 
      users_test
 WHERE
     dateadded BETWEEN '2012-02-01 00:00:00' AND '2012-11-01 00:00:00'
于 2013-12-03T17:58:05.907 回答
0
SELECT * FROM table_name WHERE DATE(date_field) between '2015-05-10' and '2015-05-21`
于 2015-05-29T22:55:11.527 回答