2009-07-09 10 views
0

私はAccess 2007を使用しています。Microsoft Access SQLの日付比較

クエリパラメータで指定する日付範囲内の日付/時刻フィールドを持つ行を返す必要があります。

次のエラーは発生しませんが、動作していません。

SELECT FIELDS FROM FOO 
WHERE (FOO.CREATED_DTG BETWEEN [START_DTG] And [END_DTG]); 

同様にこれは、私はこの作業を取得するにはどうすればよい

SELECT FIELDS FROM FOO 
WHERE (FOO.CREATED_DTG >= [START_DTG] And FOO.CREATED_DTG < [END_DTG]); 

私のために動作しませんか?

更新:CDateを使用しても違いはありません。

答えて

1

日付は#で始まり、#で終わりますか?

+0

「という表現が間違って入力されたかを評価するにはあまりにも複雑です」 – Ben

1

また、あなたは< =と> =を持っています。これらの演算子のうちの1つにのみ必要です。

+0

はい、おかげで男 – Ben

2

BLAHはフィールドまたはテーブルの名前ですか? BLAHを選択すると、それはフィールドの名前を想像しますが、BLAH.CREATED_DTGは意味を持ちません - FOO.CREATED_DTG perchanceを意味しますか?

+0

はい、メッセージ内のハッシュ結果を追加それを見つけてくれてありがとう – Ben

+0

よろしくお願いします!だからどうしてアップフォートが来ないの? - ) –

1

CREATED_DTGフィールドは、日付形式ですか。

あなたは

WHERE (FOO.CREATED_DTG BETWEEN #01/01/1971# And #07/07/2009#); 

(または任意の日付の方法で、適切である - ポイントは、パラメータクエリ、ではない)を試してみました

1

は[START____DTG]であり、中に[END____DTG]フィールドテーブルFOO、またはそれらのパラメータですか?それらがパラメータである場合、入力値の検証を取得するために型を宣言する必要があります。もしそうなら、あなたはあなたのSELECT文の最初の行の前にこれを追加する必要があります

PARAMETERS [START_DTG] DateTime, [END_DTG] DateTime;