SQL文の条件指定について

解決


マルコ  2002-11-21 03:08:21  No: 105472

SQL 文を使って、データ表示をしたいと思っています。
Where 句を用いて日付の条件を指定したいのですが
条件指定の方法がわかりません。ご教授ください。

'Limit は有効期限です。有効期限切れのデータだけを取得したい
strSQL = "SELECT * FROM sample Where Limit <" & Cstr(DATE)

上記の条件指定では有効期限切れのデータを取得できません。
今日の日付を比較する方法をご教授ください。


マルコ  2002-11-21 03:09:54  No: 105473

情報に不備がございました。
Limit は DATE 型です。


Say  2002-11-21 04:07:40  No: 105474

日付型の実装はDBによって異なりますからなんともいえませんが、
ともかく同じフォーマットにして比較したらいいのでは?


マルコ  2002-11-21 19:13:08  No: 105475

Say さんありがとうございます。
DB は MDB を使用しております。

> ともかく同じフォーマットにして比較したらいいのでは?

VB 初心者なもので、同じフォーマットという意味がわからないのですが、もう少し判りやすくご教授いただけないでしょうか。


とろ  2002-11-21 19:29:18  No: 105476

Access の場合、日付 (Date) 型の
定数(リテラル値)は # で囲むことになっています。

それなので、
strSQL = "... where Limit < #" & Format(Date, "yyyy/mm/dd") & "#"
という感じですね。

# 関係ありませんが、
# 有効期限切れのデータを取得するならば
# "<" でなく ">" のような気もしますが...


マルコ  2002-11-21 20:10:08  No: 105477

とろさんありがとうございます。

> strSQL = "... where Limit < #" & Format(Date, "yyyy/mm/dd") & "#"

を試しましたが、エラーで「行1:"#"の近くに無効な構文があります。」と言われてしまいました。


とろ  2002-11-21 21:37:34  No: 105478

私の環境では、できましたけど。

データベースがホントは Access でないとか。

実際に発行している抽出クエリを表示させてみて下さい。
そのクエリを見てみたいと、なんとも言えません。


マルコ  2002-11-21 22:11:51  No: 105479

勘違いしてました、SQLでした、すみません。

' 接続を確立する
    objADOConnection.Open "Provider=SQLOLEDB" & _
    ";Data Source=" & "****" & _
    ";Initial Catalog=" & "KuroDB", "sa", ""


マルコ  2002-11-22 05:11:39  No: 105480

自己解決しました。ありがとうございました。

strSQL = "... where Limit < '" & CStr(Date) & "'"

文字列の比較のため、'(シングルコーテーション)
でくくることで解決できました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加