- ベストアンサー
Access 日付抽出について
Access2000のクエリにて、ある特定日付の抽出ができません。 テーブルの日付項目は、日付/時刻型です。 テーブルを開くと、「2008/02/01 12:59:00」のように見えます。 クエリで抽出する時に、「#2008/02/01#」で抽出されると思って いるのですが、実行すると抽出できません。 どのようにクエリ設定をすればよろしいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
普通、出来ないでしょ? > 「#2008/02/01#」 は、入力してないけど 「#2008/02/01 0:00:00#」 なのだから・・・ 手としては2つ Betweenで、同じ日付で、時間をずらして抽出するか? Format関数で、文字に変更して、日付だけで抽出するようにするか? Accは日付型、時刻型と2つの型は無く、必ず日付時刻型と言うお話ね
その他の回答 (2)
- pattonglan
- ベストアンサー率24% (9/37)
DateValue関数を使って出来ませんか? DateValue関数は日付を表すバリアント型 (内部処理形式 Date の Variant) の値を返します。 構文 DateValue(date) フィールド名が HogeHoge だった場合、 Where DateValue(HogeHoge) = #2008/02/01# で抽出されると思います。 基本的にHusky2007さんの回答と同じですが 日付型のままで抽出条件にしています。
お礼
回答ありがとうございます。
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() を使っておられるのかな?
お礼
回答ありがとうございます。 Formatで変換する方法ですね。
お礼
回答ありがとうございます。 Betweenで日付範囲を設定していた際に、その範囲が抽出できていました ので、#を付けることで時刻部分は無視されるワイルドカードであると 勘違いしておりました。 Betweenで対応するのであれば、 Between #2008/02/01# and #2008/02/02# で 2/1だけを 抽出できますね。