
お世話になっております。
質問内容は基本的な事かもしれませんがご容赦ください。
あるテーブルにDateTime型のフィールドがあり、Insertした日時を保存しています。
このフィールドに対して、日付のBETWEENや時間のBETWEENで検索かけるにはどうしたら良いのでしょうか。
例えば、
時間は未指定だけど、1月1日から1月31日までのデータを検索
SELECT * FROM table WHERE insertDT BETWEEN '01-01' AND '01-31'
日付は不明だけど、7:00から12:00までのデータを検索する等です。
SELECT * FROM table WHERE insertDT BETWEEN '07:00' AND '12:00'
これら試しましたが、正常な結果が得られず困っています。
不明な部分の代替文字でもあるのでしょうか。
SELECT * FROM table WHERE (insertDT >= '07:00' AND insertDT <= '12:00')
これも試しましたがやはりダメでした。
どなたかご教示の程、よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
なんか中途半端
>時間は未指定だけど、1月1日から1月31日までのデータを検索
今回の例であれば
SELECT * FROM table WHERE MONTH(insertDT) =1;
でいけますが、datetime型は年までもっているのですから
betweenするならそこまで指定する必要があります。
SELECT * FROM table WHERE insertDT BETWEEN '2012-01-01 00:00:00' AND '2012-01-31 23:59:59';
まぁ、時間は無視するならこんな感じでも
SELECT * FROM table WHERE DATE(insertDT) BETWEEN '2012-01-01' AND '2012-01-31';
>日付は不明だけど、7:00から12:00までのデータを検索する等です。
時間の比較なのですから、秒までいれればいけます
SELECT * FROM table WHERE TIME(insertDT) BETWEEN '07:00:00' AND '12:00:00'
お礼遅くなり、申し訳ありませんでした。
様々な日時関数を使う事で解決できそうです。
大変参考になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
BLOBやCLOBのパフォーマンスを...
-
Null値件数をカウントする式に...
-
int型フィールドにnullを登録で...
-
最大値が抽出できない!
-
SQL*Loader Append
-
ファイルの漢数字の順番につい...
-
select文の実行結果に空白行を...
-
group byの並び順を変えるだけ...
-
VB6のオラクルのバインド変数
-
単一グループのグループ関数で...
-
レコードの登録順がおかしい
-
月末日のみソートしたい
-
ソート(PL/SQL)
-
【PL/SQL】FROM区に変数を使う方法
-
Oracleで「文字が無効です」の...
-
AccessのSQL文で1件のみヒット...
-
実人数と延べ人数
-
掲載日と更新日の管理の仕方
-
NULL固定として出力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
BLOBやCLOBのパフォーマンスを...
-
ACCESSのクエリで空白以降を別...
-
int型フィールドにnullを登録で...
-
Null値件数をカウントする式に...
-
SELECTした合計値をそのまま割...
-
入力データの半角スペースと全...
-
テーブルのフィールドの一番長...
-
ファイルメーカー10で重複デー...
-
固定長データのテキストファイ...
-
配列に指定した値が含まれてい...
-
MySQLでの近似値順での値の取得...
-
CSVからNULL値をインポート
-
2回実行のSQL文を1回にしたい
-
phpMyAdminでインポート
-
【MySQL】 DECIMAL(2,1) に 13...
-
SQLです下記の問合せを行うクエ...
-
重複しないデータのみを抽出
-
チェックボックスから得る値を...
おすすめ情報