我想寫一個SQL查詢,它應該只選擇具有特定日期而不是時間的計數。在沒有時間的SQL中查詢日期時間
select count(*) from xyz where time='2010-01-21'
但它沒有返回任何結果。
我想寫一個SQL查詢,它應該只選擇具有特定日期而不是時間的計數。在沒有時間的SQL中查詢日期時間
select count(*) from xyz where time='2010-01-21'
但它沒有返回任何結果。
如果你有一個日期時間字段,你想匹配日期:
select count(*) from xyz where time BETWEEN '2010-01-21' AND '2010-01-22
「
嘗試(MySQL的)
SELECT COUNT(*) FROM xyz WHERE DATE(datetime_col) = '2010-01-21'
在T-SQL(MSSQL)(有點難看,但應工作):
SELECT * FROM xyz WHERE CAST(CONVERT(varchar(8), datetime_col, 112) AS DATETIME) <= '2011-01-21'
我假設OP是在SQL服務器上,但只是搞砸了標籤。 – 2011-03-09 00:05:54
Im gettihg這個錯誤:'日期'不是一個公認的內置函數名稱。 – alice7 2011-03-09 00:07:18
對於SQL Server 2008,你應該能夠使用date數據類型:
select count(*) from xyz where cast(time as date) = '2010-01-21'
+1我最初評論說,這是非sargable,不能使用索引[但此連接請求](http://connect.microsoft.com/SQLServer/feedback/details/526431/make-more-functions-sargable )說它**實際上是可以通過的(對我來說是新聞!)。 – 2011-03-09 00:30:52
什麼時間列的字段類型? – 2011-03-09 00:01:14
datetime是數據類型 – alice7 2011-03-09 00:05:54
你在使用什麼RDBMS? – 2011-03-09 00:07:07