如何GROUP BY日期,日期的格式是nvarchar

时间:2011-09-21 09:25:47

标签: sql

例如:
mydate是nvarchar(20)

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

4 个答案:

答案 0 :(得分:3)

假设您正在使用SQL Server,请尝试以下方法:

SELECT LEFT(date_col,10) AS mydate, COUNT(*) 
FROM your_table
GROUP BY LEFT(date_col,10);

答案 1 :(得分:0)

完全按照惯例应该这样做。如果我没有弄错,varchar将按字母顺序排序,在这种情况下是相同的。我也是一个好主意,将数据库结构更改为日期而不是char。

答案 2 :(得分:0)

在Oracle中,您可以使用以下示例:

select substr(mydate, 1, 10), count(*)
  from mytable
 group by substr(mydate, 1, 10)

答案 3 :(得分:0)

SQL Server - 试试这个,

SELECT convert(varchar, getdate(), 111) AS mydate
FROM yourtable
GROUP BY convert(varchar, getdate(), 111)