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ランキング
-
「最高気温が35度以上の日を猛...
-
#1062 - '0' は索引 'PRIMARY' ...
-
「第一回模試の3科目の各得点...
-
データベースの複製の仕方(mysql)
-
参考書に従って入力したつもり...
-
下記の問合せを行うクエリを、P...
-
「都道府県の面積の大きい順に...
-
テーブル名が可変の場合のクエ...
-
select *, `人口(男)`AND`人口(...
-
mysqlのupdate構文についての質...
-
phpMyAdminをCentOS7にインスト...
-
2023年10月25日現在のMAMP ...
-
後でemailに追加でPRIMARY KEY...
-
本を見ながらPHPを勉強している...
-
SQL任意に並び替えをしたい
-
私の考えていることは ・mySQL ...
-
SQLです。こんな感じですか?あ...
-
うまくいきません教えてくださ...
-
あっってますか?うまくいきま...
-
SQLです。下記の問合せを行うク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つ前に戻るには…
-
mysqlのフィールド名
-
最大値を持つレコードを削除したい
-
mysqlでJOIN文
-
1列について重複行を除いて全列...
-
グループからランダムに抽出す...
-
SQL一発でカレンダー表示は可能...
-
mysqlで外部キーをつけたカラム...
-
矛盾していないでしょうか?
-
1000万件のデータをmysqlで効率...
-
ビューに追加・削除が出来ません。
-
テーブルが作成できない
-
挿入先テーブルに存在しないレ...
-
【ストアドプロシージャ】条件...
-
SQL内でループさせるような検索文
-
Waiting for table lockエラー...
-
MySQL INSERT文 エラー
-
mysqlのデータベースを復元した...
-
PHP上のSQLで、SELECT文をいく...
-
複数の列にまたがってユニーク...
おすすめ情報