例如:
指明MyDate數據類型爲nvarchar(20)如何GROUP BY日期,日期的格式類型爲nvarchar
mydate
-------------
2011/08/04 10:14:47
2011/07/20 15:00:00
2011/07/20 22:15:59
2011/08/04 13:17:33
如何例如組最多按日期
:
mydate
------------
2011/08/04
2011/07/20
例如:
指明MyDate數據類型爲nvarchar(20)如何GROUP BY日期,日期的格式類型爲nvarchar
mydate
-------------
2011/08/04 10:14:47
2011/07/20 15:00:00
2011/07/20 22:15:59
2011/08/04 13:17:33
如何例如組最多按日期
:
mydate
------------
2011/08/04
2011/07/20
假設tou're使用SQL Server,試試這個:
SELECT LEFT(date_col,10) AS mydate, COUNT(*)
FROM your_table
GROUP BY LEFT(date_col,10);
完全一樣的方式應該這樣做。如果我沒有弄錯,varchar將按照字母順序排序,在這種情況下它是相同的。我也是一個好主意,將數據庫結構更改爲日期而不是char。
我同意你的觀點,但表已設置,不能改變。這就是爲什麼我試圖找到解決方案的原因。感謝您的建議! – AGA
在Oracle中,你可以使用下面的例子:
select substr(mydate, 1, 10), count(*)
from mytable
group by substr(mydate, 1, 10)
謝謝你!我正在使用SQL SERVER〜 – AGA
SQL服務器 - 試試這個,
SELECT convert(varchar, getdate(), 111) AS mydate
FROM yourtable
GROUP BY convert(varchar, getdate(), 111)
你使用哪個數據庫系統? –
日期不應該作爲字符串存儲,如果必須將它們作爲字符串存儲,至少要使用明確且可排序的日期格式。最後爲什麼'nvarchar(20)'?它們不會包含任何非ASCII字符。 –
@Martin - 你確定嗎?似乎有可能在阿拉伯語或希伯來語腳本中存在日期... –