MySQLで、DATETIME型のカラムから、指定した日数分の、データが存在する日付を取得することは可能でしょうか?
例えば、下記 table_a から最近3日分のデータが存在する日を取得したい場合、
2011-06-18
2011-06-16
2011-06-12
が最近3日のデータが存在する日なので、結果に示すようなものが取得したい内容となります。
(下記結果では、各日付けの最後の時刻が取得されていますが、時刻はどれでも構いません)
もしそのようなことができるSQL構文がありましたら、ご教示ください。
よろしくお願いします。
(table_a)
+---------------------+
| date |
+---------------------+
| 2011-06-09 09:00:00 |
+---------------------+
| 2011-06-09 15:00:00 |
+---------------------+
| 2011-06-10 09:00:00 |
+---------------------+
| 2011-06-11 09:00:00 |
+---------------------+
| 2011-06-12 07:00:00 |
+---------------------+
| 2011-06-12 09:00:00 |
+---------------------+
| 2011-06-16 09:00:00 |
+---------------------+
| 2011-06-18 09:00:00 |
+---------------------+
| 2011-06-18 12:00:00 |
+---------------------+
| 2011-06-18 20:00:00 |
+---------------------+
(結果)
+---------------------+
| date |
+---------------------+
| 2011-06-18 20:00:00 |
+---------------------+
| 2011-06-16 09:00:00 |
+---------------------+
| 2011-06-12 09:00:00 |
+---------------------+
No.1ベストアンサー
- 回答日時:
>2011-06-18
>2011-06-16
>2011-06-12
3日じゃなくないですか?
結果がdateだけではなくなりますが、以下の感じでどうでしょうか。
SELECT DATE_FORMAT(table_a.date,'%Y-%m-%d') as formatdate,date
FROM `table_a`
WHERE DATE_FORMAT(table_a.date,'%Y-%m-%d') >= date_add(CURRENT_TIMESTAMP(), interval -3 DAY)
GROUP BY formatdate
日付だけ取りたいなら
SELECT DISTINCT DATE_FORMAT(table_a.date,'%Y-%m-%d') as date
FROM `table_a`
WHERE DATE_FORMAT(table_a.date,'%Y-%m-%d') >= date_add(CURRENT_TIMESTAMP(), interval -3 DAY)
とするとか
# WHERE句でDATE_FORMATしていますが、日単位になるのかどうかわからない(未検証)なので、変換しています。
回答ありがとうございます。
> 3日じゃなくないですか?
table_aの中での3日分を取得したかったのです。
以下で取得することができました。
select distinct date_format(table_a.date,'%Y-%m-%d') as formatdate from table_a order by formatdate desc limit 3;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つ前に戻るには…
-
最大値を持つレコードを削除したい
-
SQL文による残業時間の算出につ...
-
Accessでデータシートに同じデ...
-
update文で改行を入れる
-
外部キーだけのテーブル(主キ...
-
L2SWはARPテーブルを持っている?
-
ACCESSのマクロでテーブルのデ...
-
テーブル名をカラムとして取得...
-
SQL 外部結合
-
SQL 複数テーブルのupdate
-
他のデータベースとのテーブル結合
-
ACCESSで容量が50MBになった...
-
SQliteの日付検索について
-
SQLでSUMなどの関数でデータが...
-
Accessのテーブルデータを一気...
-
最新レコードを抽出し外部結合...
-
SQLで違うテーブルの値を比較し...
-
SELECT 文の NULL列は?
-
テーブルリンク リンク元を知...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つ前に戻るには…
-
mysqlのフィールド名
-
最大値を持つレコードを削除したい
-
mysqlでJOIN文
-
グループからランダムに抽出す...
-
1列について重複行を除いて全列...
-
SQL一発でカレンダー表示は可能...
-
mysqlで外部キーをつけたカラム...
-
矛盾していないでしょうか?
-
ビューに追加・削除が出来ません。
-
1000万件のデータをmysqlで効率...
-
テーブルが作成できない
-
【ストアドプロシージャ】条件...
-
挿入先テーブルに存在しないレ...
-
SQL内でループさせるような検索文
-
PHP上のSQLで、SELECT文をいく...
-
mysqlのデータベースを復元した...
-
複数の列にまたがってユニーク...
-
Waiting for table lockエラー...
-
MySQL INSERT文 エラー
おすすめ情報