• ベストアンサー

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

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

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

  • ベストアンサー
  • pussyfoot
  • ベストアンサー率28% (39/138)
回答No.2

format(日付・時刻,"yyyy/mm/dd") between (入力日付,"yyyy/mm/dd") ~ 略 として時間を切り捨てて、書式を統一してやれば大丈夫だと思います。 それか、入力日付に対して時間を23:59:59を無理矢理くっつけて比較する方法もあります。

y-yossy
質問者

お礼

ありがとうございました。pussyfootさんのお知恵の方が、今回のケースには適していたので、使わせていただきました。

その他の回答 (1)

  • i-harada
  • ベストアンサー率22% (56/252)
回答No.1

i-haradaです。 一度クエリーで日付を分解します。 Datesrial(year([日付]),month([日付]),date([日付]))を使って下さい。 以上で抽出は全てできると思います。

y-yossy
質問者

お礼

ありがとうございました。今回のケースでは、他者からいただきましたformat関数を使いましたが、i-haradaさんからいただいたお知恵も、また別のケースで応用したいと思います。

関連するQ&A

  • 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文にすればよろしいのでしょうか。

  • 【Access】できればクエリにて 日付(yyyy/mm/dd)+時間(hh:mm)の計算 

    いつもお世話になります。 フィールド「日付」:日付 (S) ~YYYY/MM/DD形式~ と フィールド「時間」:時刻 (S) ~HH/MM形式~ があります。 これらを合算し、 (1)日付 (標準)  ~YYYY/MM/DD HH:MM:SS形式~ (2)日付 (標準?) ~YYYY/MM/DD HH:MM形式~ にしたいのですが、 レコードの更新欄ではどのようにビルドさせればよろしいでしょうか? 教えていただけますでしょうか? よろしくお願いします。

  • 「今日の日付を含む」と言う条件のクエリ(yyyy/mm/dd hh:mm形式)

    テーブル1の 日付フィールドには「yyyy/mm/dd hh:mm」形式にしているため 「2009/02/28 0:30」と入力されています。 クエリ1に SELECT テーブル1.日付 FROM テーブル1 WHERE (((テーブル1.日付)=Date())); とした場合は 「2009/02/28 0:30」 は表示されません。 テーブル1の 「2009/02/28 0:30」を「2009/02/28 0:00」にすれば クエリ1を実行すると「2009/02/28 0:00」のレコードが表示されます。 どうすれば日付+時間の場合も日付で抽出することができるのでしょうか? アクセス2003です。 よろしくお願いします。

  • 日付の抽出について

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

  • ACCESS日付形式について質問です。

    日付抽出条件を含んだフォームを作成したのですが、午前中までyyyy/mm/ddの形式で入力し、抽出できたのですが、今mm/ddの形式で入力しないと抽出できなくなりました。 変更をした覚えはないのですが・・・ yyyy/mm/ddで抽出できる方法を教えてください。 おねがいします。

  • Access2007で同月同日を抽出

    ある(*.accdb)のクエリーで日付の所に Like"*/"&Format(date(),"mm/dd") と書いて本日と同じ同月同日を抽出していますが本日ではなく任意の yyyy/mm/ddをあるレコード欄に入力したらその日付の同月同日を抽出するにはクエリーにどの様に書けばよいのか教えてください。

  • Access2007の日付/時刻型フィールドで、時を二桁にする書式

    お世話になります。 Access2007の日付/時刻型フィールドで、日時を「2007/07/09 01:22:33」というふうに表示させるにはどういう書式にしたらいいんでしょうか? 「yyyy/mm/dd hh:nn:ss」と入れてみたのですが、時が一桁だと一桁になってしまいます。 ヘルプの「hh」のところには「時を 2桁の数字で表示します (00 ~ 23)。」と書いてありますが、「h」の場合と同じようになってしまいます。 時も二桁にする書式を教えてください。よろしくお願いします。

  • エクセルで日付、時間表示

    お世話になります。エクセル2000を使っています。 セルの書式設定-ユーザー定義で以下の条件で表示させたいのですが・・・・ 日付データとして、日付のみのものと、時間も入っているデータを、 日付のみのものは日付のみの表示に、 時間も入っているものは日付と時間を表示する。 具体的には、ある一つのセルに 2003/07/26と入力した時 → "2003/07/26"と表示 2003/07/26 18:30と入力した時 →  "2003/07/26 18:30"と表示 ユーザー定義で、 yyyy/mm/dd yyyy/mm/dd hh:mm でそれぞれの表示はできますが、例えば 時間データのないものに、yyyy/mm/dd hh:mmと定義すると、"2003/07/26 00:00"と表示されて都合がよくありません。 文字データとして、前に「’」を付ければ表示のみはできますが、数値データとして使えません。 少し長くなりましたが、よろしくご教示ください。

  • 【Access】条件に該当する日付のレコードを抽出する方法について

    下記のテーブルがある場合、2002/03/10と入力すると、 ID=2のレコードを抽出したいのですが、やり方がわかりませんでした。 【テーブル(TABLE)の中身】 ID 開始日付  終了日付 1 2001/01/11 2002/02/12 2 2002/02/11 2002/03/12 3 2003/03/11 2002/04/12 テーブルの日付の列が1つ、入力する日付が2つの場合、 Betweenを使えばよいと思うのですが、 テーブルの日付の列が2つ、入力する日付が1つで、 テーブルの開始日付と終了日付の間に入力日付がある列を抽出する場合、 どうすればよいか分かりませんでした。 その為、何か良い手をご存知の方がいらっしゃいましたら、アドバイスをいただければと思います。 よろしくお願いします。

専門家に質問してみよう