我寫了一個查詢來檢查同一天是否存在多個記錄。目前從我的查詢執行限制摘錄如下:同一天的SQL Server 2008查詢檢查日期
GROUP BY
entry_date
HAVING
COUNT(entry_date) > 1
由於入場日期欄被定義爲datetime
,它對證完整datetime或只是日期?
謝謝。
我寫了一個查詢來檢查同一天是否存在多個記錄。目前從我的查詢執行限制摘錄如下:同一天的SQL Server 2008查詢檢查日期
GROUP BY
entry_date
HAVING
COUNT(entry_date) > 1
由於入場日期欄被定義爲datetime
,它對證完整datetime或只是日期?
謝謝。
如果entry_date
是DATETIME
,您的羣組將不會按預期工作。您需要CAST
到DATE
。 Cast(Datetime)to date is sargable。
GROUP BY cast(entry_date as DATE)
having count(cast(entry_date as DATE)) > 1
既然你不要cast
或convert
它到別的,自然它會使用所有可用的數據。所以它會將數據與完全相同的日期時間組合在一起。你爲什麼期望別的嗎?
嗨,我只問,當我執行該聲明和查看記錄我得到的數據,如'2015-07-15 19:30:55.970' - '2015-07-15 19:30:05.547'返回。這表明它可能不尊重毫秒值。謝謝。 – AkinW
它應該是完整的日期時間。
CONVERT(date, entry_date)
應該分隔日期。
我不知道SQL Server,但如果您選擇該列,會得到什麼? – jarlh
'2015-06-25 09:31:25.807'如果您對該專欄做了選擇陳述,那將會是什麼情況。 – AkinW
然後,你必須從它提取日期部分,無論是在分組中,還有從句。 (或者,甚至更好,有一個派生表,你在那裏做的那部分。) – jarlh