2011-10-31 112 views
0

如何選擇數據庫中的行數量,如果類型是varchar?查詢選擇數據庫中當前日期的行數?

SELECT * FROM `orders` WHERE DATE(`order_date`) = DATE(NOW()) 

不會工作,因爲它不存儲在日期時間有沒有其他方式?

2011-10-30 19:14:32 

是什麼是存儲

回答

2

您可以使用

SELECT * FROM `orders` WHERE DATE(`order_date`) = CURDATE() 
1

由於order_date是VARCHAR,試着用:在SQL

WHERE LEFT(order_date, 10) = CURDATE() 
1

使用datediff功能....

喜歡的東西

SELECT * FROM table WHERE DATEDIFF(day, StartDate, GETDATE()) <= 0 
1

最佳將改變order_datedate類型和使用:

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(如果有的話)。

相關問題