4

我正在尝试创建一个 MySQL 查询,它将获取当前日期并将其与我的表中的 2 个日期字段进行比较,并返回满足该查询的行。

这是我的列 1- [from_date] 类型是 Date 2- [to_date] 也包含类型 Date

查询假设返回这些日期之间的行。

这是我的查询

mysql_query("SELECT * FROM location WHERE from_date >= DATE() AND to_date <= DATE()")

我的问题是它不返回任何东西。我应该将我的列类型切换为 DATETIME 吗?

提前致谢。

4

5 回答 5

4

您应该使用Now()来获取系统的当前日期。

于 2013-05-17T13:12:10.493 回答
2

请参阅此处的文档。
在此处使用BETWEEN
mysql 文档

于 2013-05-17T13:14:47.453 回答
1

之间使用

mysql_query("SELECT * FROM location WHERE CURDATE() between from_date and to_date 
于 2013-05-17T13:14:14.163 回答
0

尝试 NOW() 插入 DATE()

    mysql_query("SELECT * FROM location WHERE from_date >= NOW() AND to_date <= NOW()")

在此处获取有关 NOW()的更多信息

于 2013-05-17T13:12:40.230 回答
0

DATE()函数实际上只是从日期或日期时间表达式中提取日期部分。但是,它不会按照您的意愿返回当前日期。

要获取当前时间,请使用NOW()or CURDATE()

mysql_query("SELECT * FROM location WHERE CURDATE() BETWEEN from_date AND to_date")

如果试图在两个值之间找到一个东西,MySQL 也有BETWEEN运算符

于 2013-05-17T13:15:12.597 回答