![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
下記のように、時刻がカラムに分かれたテーブルがあるとき、
現在時刻(もしくは現在日)より、7日以内のレコードだけを取得したいのですが、
どう書けば良いのでしょうか?
カラム1 カラム2 min hou day mon yea
内容1 内容2 0 4 6 1 2012
内容3 内容4 3 2 1 5 2011
内容5 内容6 1 3 4 2 2011
ビューとかを使うのでしょうか?
それとも一旦全部取り出した後、スクリプト(PHP)で何とかするのでしょうか?
一番知りたいのは、具体的なSQL文なのですが…
<環境>
MySQL5
時刻関係カラムの属性は全て、UNSIGNEDでデフォルト値0
min tinyint(3)
hou tinyint(3)
day tinyint(3)
mon tinyint(3)
yea smallint(5)
No.2ベストアンサー
- 回答日時:
DATEDIFF を使って現在日との差を取って、それが-7~0のものを取得する方法も有りますね。
http://dev.mysql.com/doc/refman/5.1/ja/date-and- …
例) ---------------------------
SELECT * FROM table_a
WHERE
DATEDIFF(
STR_TO_DATE(CONCAT(yea, '/', mon, '/', day), '%Y/%c/%e'),
CURRENT_DATE
) between -7 AND 0
------------------------------
現在日の前後7日以内でしたら、絶対値が7以下になりますね。
例) ---------------------------
SELECT * FROM table_a
WHERE
ABS(DATEDIFF(
STR_TO_DATE(CONCAT(yea, '/', mon, '/', day), '%Y/%c/%e'),
CURRENT_DATE
)) <= 7
------------------------------
No.1
- 回答日時:
SELECT *
FROM テーブル名
WHERE CONCAT(CAST(yea AS CHAR(4))
,CASE WHEN mon < 10 THEN '0' ELSE '' END
,CAST(mon AS CHAR(2))
,CASE WHEN day < 10 THEN '0' ELSE '' END
,CAST(day AS CHAR(2)))
>=LEFT(REPLACE(ADDDATE(CURRENT_DATE,-7),'-',''),8)
で出来ると思います。
回答ありがとうございました。
REPLACE、ADDDATE、CURRENT等、知らない書き方がたくさんあったので、
勉強になりましたー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- PHP 掲示板を資料を参考にして開発中ですが、画像がアップされません? 1 2022/11/21 06:44
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- 学校 現在高校1年生の男子です。 転校を考えてます。以下の文が転校を考えた理由です。このような内容でも転校 2 2022/06/26 19:48
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
- FX・外国為替取引 FX業者で指値逆指値注文のON/OFFの出来る方法または業者はないでしょうか? 1 2022/07/05 11:02
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- 時計・電卓・電子辞書 ソーラー腕時計の自動時刻合わせが、いつもずれてしまう 7 2022/12/04 10:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
now()かCURRENT_TIMESTAMPか
-
UNIONする際、片方テーブルしか...
-
sql , insert で空行(全ての列...
-
一部のカラムでdistinctし全て...
-
AUTO_INCREMENTに0はダメ?
-
DBエラーの意味
-
ドロップダウンリストの連動し...
-
MYSQLで全てのカラムから検索す...
-
エクセルかワードで家系図を作...
-
PHP 画像のアップロード Qiita
-
空文字のアップデート
-
SQLでカラムを追加し、条件に合...
-
複数テーブルから全データ取得...
-
GREATESTで NULLをスルーする方...
-
accessで複数カラムの組み合わ...
-
グルーピングについて。
-
Select文で結合した時に、重複...
-
カラムとコラムの使い分け
-
生年月日から年代を検索
-
SELECT文で、指定カラム以外の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一部のカラムでdistinctし全て...
-
SELECT文で、指定カラム以外の...
-
SQLです!!教えてください。
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
UNIONする際、片方テーブルしか...
-
MYSQLで全てのカラムから検索す...
-
SQLでカラムを追加し、条件に合...
-
MySQLで先頭にカラムを追加
-
sql , insert で空行(全ての列...
-
DBエラーの意味
-
カラムをコピーして、新規カラ...
-
構造が異なる二つのテーブルをu...
-
カラム上の重複を削除するクエ...
-
ROUND関数で、四捨五入ができな...
-
ドロップダウンリストの連動し...
-
AUTO_INCREMENTに0はダメ?
-
MySQLで論理名を取得する方法
-
カラムとコラムの使い分け
-
【SQL】select に ワイルドカー...
おすすめ情報