• ベストアンサー

日付の抽出について

data型、yy/mm/dd hh:mm:ss の形式で入っている日付を、 期間を指定し、時分秒は考慮せず抜き出したいと考えています。 truncなどを使うのだとは思うのですが、例えば、4月1日から 4月5日まで抽出する場合は、どう書けば良いのでしょうか? Where句の指定方法を教えていただけないでしょうか?

noname#32335
noname#32335
  • Oracle
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

BETWEEN a >= TO_DATE('07/04/01', 'yy/mm/dd') AND a < TO_DATE('07/04/06','yy/mm/dd) じゃだめです?

noname#32335
質問者

お礼

ありがとうございました。 インターバルとか使ってたからややこしくなったようです。

関連するQ&A

  • log4jが連続して同じログを

    JSFにて、log4jでログファイルにログ出力を行っているのですが、一回のログ出力メソッド呼び出しで、同じログが2~8行出力されてしまいます。 例) yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... yy/MM/dd HH:mm:ss.853, WARN , .... ミリ秒単位で同じなので、一回出力されれば十分なのですが、複数行出力されています。 短時間で、かなりのサイズになってしまうため、困惑しております。 この事象の解決方法をご存じの方、解決方法をご教示願います。

  • Accessで日付を抽出するパラメータを設定したい

    Accessのクエリで日付に対して与えているパラメータがあります。 パラメータで指定したいデータはフォームのテキストに入力した日の23:59:59 以降の日付を抽出したい。 入力:数値8桁(yyyymmdd)で行う 抽出先テーブルのデータ:yyyy/mm/dd hh:mm:ss 現在以下のパラメータを日付に対して与えると「式が複雑すぎます、、、」と注意されてしまいます。 指定日の23:59:59を抽出範囲として指定するのはどうしたらよいでしょうか? 入力値の変換も含めて、以下のパラメータを入れています。 「+"23:59:59"」をとればエラーは出ません。 <=IIF(Len([Forms]![フォーム名]![日付])=8,CDate(Format([Forms]![フォーム名]![日付],"@@@@/@@/@@")),#9999/1/01#)+"23:59:59" どなたか、お助け下さい。よろしくお願い致します。

  • 日付型→文字列

    SQLServer2005の環境にて、 日付型の項目(YYYY/MM/DD HH:MM:SS)から日付のみを抽出したい場合、 現在SUBSTRING(CONVERT(VARCHAR,AA),1,10) と変換を行っているのですが、結果が「MM DD YYYY」となってしまいます。 「YYYY/MM/DD」の形式で取得するにはどのようなSQL文にすればよろしいのでしょうか。

  • 日付だけを見てデータをSELECTしたい

    お世話になっております。 開発環境:MySQL3.23.58にて、DATETIME型で日付をYYYY-MM-DD hh:mm:ssで登録しています。 そこから、下のように SELECT * FROM テーブル名 WHERE DATE( フィールド名 ) = '2007-09-12'; などと、日付だけを見てデータを抽出したい(時間は無視したい)のですが、マニュアルを見ると 『DATE() は MySQL 4.1.1 以降で使用できる。』 と書いてあり、やり方が分からず途方にくれております。 上記環境下で、うまく日付のみを見てデータを抽出する術は無いものでしょうか。 アドバイスをいただけたらと思います。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • 日付や時刻の"01"を" 1"に変換したいです。

    下記のような問題で悩んでいます。何かよいアイディアがありましたら教えて下さい。 【要件】 ・SimpleDateFormatで指定された書式の文字列にした後、年月日時分秒ミリ秒の"01"~"09"を" 1"~" 9"のように前0を半角スペースに一括変換したい(年は書式がyy形式の場合のみ)。 ・SimpleDateFormatへの書式はエラーが起きない限りどんなものでも受け入れる(通常、書くわけがない書式についても)。 例) "yyyy/MM/dd HH:mm:ss:SSS" "'yyyy/MM/dd HH:mm:ss:SSS形式:'yyyy/MM/dd HH:mm:ss:SSS"  ※''の中にあるMMはテキストなので英字のまま。 "yyyy/MMMMMMMMMMMMMMMMMMMM/dd HH:mm:ss:SSS"  ※Mの数は不明 "yyyy/MM/dd MM MM HH:mm:ss:SSS"  ※月の表示指定が複数 引数 :日付(yyyyMMddHHmmssSSS形式), SimpleDateFormatへの書式 戻り値:SimpleDateFormatで変換後に"01"~"09"を" 1"~" 9"にした文字列 自分なりの検討案としては下記になります。 a.引数の書式をそのままSimpleDateFormatに引き渡ずに、一部修正してから呼び出す。 例)"yyyy/MM/dd HH:mm:ss:SSS"→yyyy/_M/_d _H:_m:_s:__S" ※"_"は半角スペースです。 実際はMやdなどが2桁になる場合は変換しません。 かなりごりごり200行ぐらい試しに書いたのですが、対応できないケースが出てきてその都度エンドレス状態です。 ちょっとこのまま実装するわけにいきません。いつバグがでるか・・・。 b.SimpleDateFormatで変換後に年月日時分秒ミリ秒に該当する箇所に"01"~"09"があったら置換する。  引数の書式からMMやddのindexを保持して、SimpleDateFormatで変換後の該当indexに置換。 例) 書式:"yyyy/MM/dd_HH:mm:ss:SSS" 日付:"20090101010101001" "2009/01/01_01:01:01:001"→"2009/_1/_1__1:_1:_1:__1" ※"_"は半角スペースです。 但し前提として、書式とSimpleDateFormatで変換後の文字列が1対1になっている必要があります。 単純な例ですと 書式:"yyyy/MMMM/dd HH:mm:ss:SSS" 書式のddは11~12桁目ですが、SimpleDateFormatで変換後は下記のようにインデックスがずれます。 "2009/1月/01 01:01:01:001" "2009/12月/01 01:01:01:001" もしかしたら下記のような感じで吸収できるのかもしれませんが、ちょっと個人的に出来そうに思えませんでした。 月が1桁 かつ 書式が"M"の場合 月が1桁 かつ 書式が"MM"の場合 月が1桁 かつ 書式が"MMM"の場合 月が1桁 かつ 書式が"MMMM"の場合 月が1桁 かつ 書式が"Mxn"の場合 月が2桁 かつ 書式が"M"の場合 月が2桁 かつ 書式が"MM"の場合 月が2桁 かつ 書式が"MMM"の場合 月が2桁 かつ 書式が"MMMM"の場合 月が2桁 かつ 書式が"Mxn"の場合 ここ1,2週間ほど煮詰まっています。どなたかアドバイス頂けると助かります。 自分的なネックは書式が限りなくフリー形式なところです。

    • ベストアンサー
    • Java
  • パラメータクエリで日付を条件に抽出したい

    ・・・のですが、(○月○日より以前であればという意味で)条件のところに   <[日付を入力してください] として、パラメータに「2004/10/4」と入力すれば問題なく抽出しますが、これを「04/10/4」と入力して抽出させたいときにはどのようにすればいいでしょうか? この日付の入っているフィールドのプロパティは書式を「yy/mm/dd」にし、実際にそのように表示されています。 何か他に問題があるのでしょうか?

  • 日付・時刻型の条件抽出方法について教えてください。

    1.accessで日付・時刻型(yyyy/mm/dd hh:nn:ss)のデータを持つフィールドから、between関数or<>の式で期間を抽出する。 2.[開始日]と[終了日]をパラメータorフォームのテキストボックスに入力して、期間抽出する。 3.[開始日]、[終了日]は日付のみ入力したい(yyyy/mm/dd)。 4.その際、[終了日]は入力した日付の00:00:00を持つレコードしか抽出されず、同日で以降の時間を持つレコードは抽出外になってしまう。 という問題を抱えています。 [終了日]に"+1"を加えたのですが、"式を評価することができません"が返ってきます。 上記を解決できる方法ご存知の方、教えていただけますでしょうか? よろしくお願いします。

  • nvarcharとdatetimeで作成された日付の抽出方法について

    SQL Server 2005 EXPRESSを使って、 nvarchar型で作成されたyyyy/mm/ddの日付と datetime型で作成されたyyyy/mm/ddの日付を比較し WHERE '2007/05/04' > gettime()のようなSELECT文の WHERE句を使って該当レコードを表示することが可能であれば 教えてください。 以上、宜しくお願いします。

  • UTF8でperlスクリプトを書くと年月日が表示しない

    UTF-8で下記スクリプトを書いて実行すると、 $yy年$mo月$dd日 にあたる部分が表示されず、($day)$hh:$mm:$ss の部分しか表示されません。 ------------------------------------ #!/usr/bin/perl use utf8; use Encode; &get_date(); print "Content-type: text/html\;charset=utf-8\n\n"; print encode('utf8',"$date"); exit; sub get_date { ($ss,$mm,$hh,$dd,$mo,$yy,$day)= localtime(time); $day = ("日","月","火","水","木","金","土")[$day]; $yy = $yy+1900; $mo++; if ( $mo < 10 ) { $mo = "0$mo"; } if ( $dd < 10 ) { $dd = "0$dd"; } if ( $hh < 10 ) { $hh = "0$hh"; } if ( $mm < 10 ) { $mm = "0$mm"; } if ( $ss < 10 ) { $ss = "0$ss"; } $date = "$yy年$mo月$dd日($day)$hh:$mm:$ss"; } ------------------------------ EUCコードでスクリプトを書いてencodeなど不要な部分を変更した場合は$yy年$mo月$dd日の部分も表示されます。 また、上記  $date = "$yy年$mo月$dd日($day)$hh:$mm:$ss"; の部分を下記のように変更すると表示されますが... -------------------------- $date = $yy; $date .="年"; $date .= $mo; $date .="月"; $date .= $dd; $date .="日"; $date .="($day)$hh:$mm:$ss"; -------------------------- なぜ一括してダブルクォートで囲むと表示されないのでしょうか? 今まではEUCでスクリプトを書いておりました。UTF8に翻弄されております... どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • MS-ACC2000 レポートでの日付書式について

    レポートでテーブルから日付項目を配置し、書式に yy/mm/dd hh:nn を指定しました。 期待する結果としては、 02/06/10 11:00 02/05/27 09:36 02/06/11 10:14 04/11/12 09:17 という感じで印刷されるだろうと思っていたのですが、実際の結果は 2002/06/10 11:00 2002/05/27 9:36 2002/06/11 10:14 2004/11/12 9:17 となり、「年」のところと「時」のところが期待と反してしまいます。 特に「時」のところは桁がズレてしまい何とかしたいのですが、 書式の指定で他の方法はありませんでしょうか? コントロールソースで取得元をFormat関数で =Format(項目名,"yy/mm/dd hh:nn") とし、書式を空白にすると期待する結果は得られますが、 日付項目から書式で編集する方法が何故ダメなのか。。。