如何选择数据库中的行数量,如果类型是varchar?查询选择数据库中当前日期的行数?
SELECT * FROM `orders` WHERE DATE(`order_date`) = DATE(NOW())
不会工作,因为它不存储在日期时间有没有其他方式?
2011-10-30 19:14:32
是什么是存储
如何选择数据库中的行数量,如果类型是varchar?查询选择数据库中当前日期的行数?
SELECT * FROM `orders` WHERE DATE(`order_date`) = DATE(NOW())
不会工作,因为它不存储在日期时间有没有其他方式?
2011-10-30 19:14:32
是什么是存储
您可以使用
SELECT * FROM `orders` WHERE DATE(`order_date`) = CURDATE()
由于order_date
是VARCHAR,试着用:在SQL
WHERE LEFT(order_date, 10) = CURDATE()
使用datediff
功能....
喜欢的东西
SELECT * FROM table WHERE DATEDIFF(day, StartDate, GETDATE()) <= 0
最佳将改变order_date
到date
类型和使用:
SELECT *
FROM orders
WHERE order_date >= CURDATE()
AND order_date < CURDATE() + INTERVAL 1 DAY
如果你把它作为VARCHAR
,你可以使用这种变化:
SELECT *
FROM orders
WHERE order_date >= CAST(CURDATE() AS CHAR)
AND order_date < CAST((CURDATE() + INTERVAL 1 DAY) AS CHAR)
这两个都可以使用索引order_date
(如果有的话)。