日付の検索


データベースアプリケーションで日付の検索を行うことがよくあります。ところが、日付は文字列でもないし、数値(ふつうの実数や整数)でもないので、SQL文をどう書くかが問題です。Visual Basicなどでは、#で囲んで日付時刻を表しますが、Delphiではこれはエラーとなってしまいます。

実は、Delphiでは"cast"と"as timestamp"を使って表現します。例えば、2000/1/1から2000/3/31までのデータを検索するときは

select * from "ATable" where Date1 between cast("2000-1-1" as timestamp) and cast("2000-3-31" as timestamp)

などとします。

ここで日付の区切りを表すのに'/'でなく'-'を使っていることに注意してください。'/'では正しく動作しません。ここでは日付の例を挙げましたが、時刻も同じようにcastとas timestampで表現できます。時刻の場合、区切りは':'(コロン)です。