2011-12-04 16 views
2

私はDate()でグループ化しようとしています。私は時間に関わらず、年、月、日によってのみグループたいと思い時間に関係なく日付でグループ化するには?

2011-12-03 08:00:24, 2011-12-03 08:12:10, 2011-12-04 09:00:00 

:私はcreated_at列に3つのレコードを持っています。上記の例のためです。 2行しか返さないでください:

2011-12-03 and 2011-12-04 

どうすればよいですか?

+0

は、このOracle/MySQLのなどですか? – Ben

+0

こんにちはベン、これはMySQL –

答えて

2

これは、年月日

SELECT group_by_column 
     , DATE_FORMAT(created_at, '%Y') 
     , DATE_FORMAT(created_at, '%m') 
     , DATE_FORMAT(created_at, '%d') 
    FROM my_table 
    GROUP BY group_by_column 

によってグループにあなたを可能にするべきであるか、一緒にすべてをしたい場合。

SELECT group_by_column 
     , DATE_FORMAT(created_at, '%Y%m%d') 
    FROM my_table 
    GROUP BY group_by_column 
+0

です.Rails 3では、AR: 'Foobar.group( 'DATE_FORMAT(created_at、"%Y%m%d ")')'です。ありがとうございます –

8
... group by date(date_time_column) 
2

次を試してみましたか?

SELECT 
    DATE(created_at) AS created_date 
FROM 
    my_table 
GROUP BY 
    created_date 
+0

はい、これを日付と時間でグループ化します –

2

GROUP BY DATE(created_at)です。つまり、ActiveRecordは.group(DATE(created_at))に翻訳されます。

実際、この正確な例はRails Guides on ActiveRecord queryingで利用できます。

関連する問題