• ベストアンサー

Access 日付抽出について

Access2000のクエリにて、ある特定日付の抽出ができません。 テーブルの日付項目は、日付/時刻型です。 テーブルを開くと、「2008/02/01 12:59:00」のように見えます。 クエリで抽出する時に、「#2008/02/01#」で抽出されると思って いるのですが、実行すると抽出できません。 どのようにクエリ設定をすればよろしいでしょうか?

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

普通、出来ないでしょ? > 「#2008/02/01#」 は、入力してないけど 「#2008/02/01 0:00:00#」 なのだから・・・ 手としては2つ Betweenで、同じ日付で、時間をずらして抽出するか? Format関数で、文字に変更して、日付だけで抽出するようにするか? Accは日付型、時刻型と2つの型は無く、必ず日付時刻型と言うお話ね

utdx019
質問者

お礼

回答ありがとうございます。 Betweenで日付範囲を設定していた際に、その範囲が抽出できていました ので、#を付けることで時刻部分は無視されるワイルドカードであると 勘違いしておりました。 Betweenで対応するのであれば、  Between #2008/02/01# and #2008/02/02# で 2/1だけを 抽出できますね。

その他の回答 (2)

回答No.3

DateValue関数を使って出来ませんか? DateValue関数は日付を表すバリアント型 (内部処理形式 Date の Variant) の値を返します。 構文 DateValue(date) フィールド名が HogeHoge だった場合、 Where DateValue(HogeHoge) = #2008/02/01# で抽出されると思います。 基本的にHusky2007さんの回答と同じですが 日付型のままで抽出条件にしています。

utdx019
質問者

お礼

回答ありがとうございます。

noname#140971
noname#140971
回答No.2

tab1: ID___fld_1 01___2008/02/01 12:59:00 02___2008/02/02 12:59:00 クエリ1: ID___fld_1 01___2008/02/01 12:59:00 SELECT * FROM tab1 WHERE Format(fld_1,"yyyy/mm/dd")='2008/02/01'; ただし、そもそも、2008/02/01 12:59:00 => 2008/02/01 で格納すべきかと思います。 Date() ではなくNow() を使っておられるのかな?

utdx019
質問者

お礼

回答ありがとうございます。 Formatで変換する方法ですね。

関連するQ&A