验证MySQL查询中的日期范围

时间:2012-11-26 10:55:33

标签: php mysql date date-range

(这个问题可能看起来很容易或者有些愚蠢,因为我赦免了我的无知。)

我使用PDO查询来使用SELECT然后获取一些值,我需要获取一些在其开始日期和结束日期内的条目。

我的数据库

+----------+-----------------+----------------------+--------------------+
| id (INT) | title (VARCHAR) | start_date (VARCHAR) | end_date (VARCHAR) |
+----------+-----------------+----------------------+--------------------+
|    1     |     buddy       |     2012-11-26       |     2012-11-30     |
|    2     |     metro       |     2012-12-05       |     2012-12-20     |
|    3     |     justin      |     2012-11-28       |     2012-12-01     |
+----------+-----------------+----------------------+--------------------+

我的查询如下:

$query = "SELECT title, start_date, end_date FROM debts WHERE start_date >= CURDATE() AND end_date >= CURDATE()";

我想要达到的目标是start_date今天或更高但不超过end_date它将是有效的。这将返回id 1的行,但如果我将start_date更改为2012-11-25,则由于AND上的第一个条件而失败。我真的很困惑,因为我是新手,有没有内置函数来处理这种情况?

2 个答案:

答案 0 :(得分:1)

这样更好:

SELECT title,start_date,end_date FROM debts WHERE date(now())BETWEEN start_date AND end_date

答案 1 :(得分:0)

SELECT title, start_date, end_date FROM debts
WHERE start_date >= CURDATE() AND end_date <= CURDATE()