プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (3件)

普通、出来ないでしょ?



> 「#2008/02/01#」
は、入力してないけど
「#2008/02/01 0:00:00#」
なのだから・・・

手としては2つ
Betweenで、同じ日付で、時間をずらして抽出するか?
Format関数で、文字に変更して、日付だけで抽出するようにするか?

Accは日付型、時刻型と2つの型は無く、必ず日付時刻型と言うお話ね
    • good
    • 0
この回答へのお礼

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

Betweenで対応するのであれば、
 Between #2008/02/01# and #2008/02/02# で 2/1だけを
抽出できますね。

お礼日時:2008/03/12 11:39

DateValue関数を使って出来ませんか?



DateValue関数は日付を表すバリアント型 (内部処理形式 Date の Variant) の値を返します。

構文
DateValue(date)

フィールド名が HogeHoge だった場合、
Where DateValue(HogeHoge) = #2008/02/01#
で抽出されると思います。

基本的にHusky2007さんの回答と同じですが
日付型のままで抽出条件にしています。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/03/12 11:44

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() を使っておられるのかな?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/03/12 11:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています