Tin*_*iny 37 mysql datetime date date-comparison
我需要比较MySQL中的日期,忽略DateTime列中的时间部分.我尝试了以下SQL.
SELECT * FROM order_table where order_date=date_format('2012-05-03', '%Y-%m-%d');
Run Code Online (Sandbox Code Playgroud)
即使2012-05-03 10:16:46MySQL表中有日期,它也不会检索任何行.DateTime在比较MySQL中的日期时,如何忽略字段中的时间部分?
Mar*_*ers 58
你可以使用这个DATE功能:
SELECT col1, col2, ..., coln
FROM order_table
WHERE date(order_date) = '2012-05-03'
Run Code Online (Sandbox Code Playgroud)
但是如果您的表很大并且索引有以下内容,则效率更高order date:
SELECT col1, col2, ..., coln
FROM order_table
WHERE order_date >= '2012-05-03'
AND order_date < '2012-05-04'
Run Code Online (Sandbox Code Playgroud)
如果你想传递一个日期,那么你可以尝试这样的事情:
where YEAR(order_date)='2012' AND MONTH(order_date)='05' AND DAY(order_date)='03'
Run Code Online (Sandbox Code Playgroud)
您可以查看此功能以获取更多功能.
SELECT * FROM order_table WHERE date(order_date) = '2012-05-03';
Run Code Online (Sandbox Code Playgroud)
@Mark 有很好的方法,但请注意,在这种情况下,您将始终必须计算并找到第二天。如果您想避免这种情况并仍然忽略时间,您可以执行以下操作:
WHERE order_date >= '2012-05-27 00:00:00' AND order_date <= '2012-05-27 23:59:59'
Run Code Online (Sandbox Code Playgroud)
我希望这是有道理的。
| 归档时间: |
|
| 查看次数: |
46358 次 |
| 最近记录: |