7

このコマンドを実行すると、次のようになります(すべての列のすべての日付なので、基本的にSELECTの日付と同じことを明確に行いませんでした)。

SELECT DISTINCT date FROM daily ORDER BY date DESC

2013-02-12 16:40:52
2013-02-06 11:48:49
2013-02-06 11:36:41
2013-02-06 11:35:59
2013-02-04 19:38:12
2013-02-04 18:12:30
2013-02-04 09:58:41
2013-02-04 09:43:01
2013-02-04 09:35:51
2013-02-04 09:30:22
2013-02-04 09:24:57
2013-02-04 09:21:09
2013-02-04 08:50:13

必要なもの:

2013-02-12
2013-02-06
2013-02-04
  1. 日付テーブルを変更して、代わりにYYYY-MM-DDに変換する方法はありますか?

  2. そうでない場合、その日だけに基づいて個別の日付を選択する方法はありますか?

4

7 に答える 7

12
mysql> select DATE_FORMAT(Current_Timestamp, '%c %d %Y') from dual;
+--------------------------------------------+
| DATE_FORMAT(Current_Timestamp, '%c %d %Y') |
+--------------------------------------------+
| 2 12 2013                                  |
+--------------------------------------------+
1 row in set (0.01 sec)

mysql> 

もちろん、「毎日」のテーブルを使用することになります。

mysql> select DATE_FORMAT(Date, '%c %d %Y') from daily;

または多分あなたがしたい

mysql> select * from daily group by DATE_FORMAT(Date, '%c %d %Y');
于 2013-02-13T00:09:47.117 に答える
2

これを試してください:

SELECT DISTINCT(CONVERT(VARCHAR, CONVERT(DATETIME,[DATE]),23)) AS DT  
FROM DAILY
ORDER BY DT ASC
于 2013-06-14T07:54:02.270 に答える
1

N百万を超える大規模なデータセットで、DATE_FORMATによるグループ化は、使用するよりも10〜20%遅くなる可能性があることがわかりました。

 GROUP BY someid,year(date),month(date),day(date)
于 2016-02-12T10:27:23.927 に答える
0

MySQL の場合、 を使用DATE(date)して日付のみを返すことができます。フォーマットする場合は、次を使用しますDATE_FORMAT

SELECT DISTINCT DATE_FORMAT(yourdate, '%Y-%m-%d') 
FROM daily ORDER BY DATE(yourdate) DESC

データベースがこれらの値を格納する方法を変更することはできません。

そして、ここにフィドルがあります:http://sqlfiddle.com/#!2/f50527/6

于 2013-02-13T00:09:36.970 に答える
0

アクセスDB内

SELECT DISTINCT Format(date, 'Short Date')
  FROM daily
 ORDER BY Format(date, 'Short Date') DESC;
于 2017-05-11T03:37:08.040 に答える