2016-12-20 8 views
0

データベースに文字列として格納された日付。 は、私は2つの日付の間の選択またはAspの古典、どのようにデータベースのテキストフィールドに文字列として格納されている文字列の日付を選択する?

sql="SELECT * FROM payments where p_dat Between #"&from_d&"# AND #"&to_d&"# ORDER BY p_dat DESC" 

「DATE_FIELD DESC BY ORDER」を作るが、p_datは、テキストフィールドではないデータベース内の日付/時刻です傾けます。

日付フィールドを日付/時刻に変更せずに、この操作を行いたいとします。

+0

最初にサブクエリで文字列を 'datetime'に変換して比較します。どのデータベースを使用していますか? – Lankymart

+0

どうすればいいか説明してください。アクセスDBを使用します。ありがとうございます – Massry

+0

[MS Accessクエリで日付変換文字列]の可能性のある複製(http://stackoverflow.com/questions/17361338/convert-string-to-date-in-ms-access-query) – Lankymart

答えて

2

AccessデータベースのSQLは、それが利用可能なCDate関数()関数があります。

sql="SELECT * FROM payments where Cdate(p_dat) Between #" & from_d & "# AND #" & to_d & "# ORDER BY Cdate(p_dat) DESC" 

私はこれをOffice 2007データベースでテストしました。

+0

うまくやったよ、ちょうど私の答えで何を意味したか – tamak

+0

これは、日付*文字列*がどのように構造化されているか、 'CDate()'が実際の日付に変換できるかどうかによってまったく異なります。 – Lankymart

+0

これは私が探しているものです。本当にありがとう。王子。 – Massry

0

データベースのテキストフィールドの値をSQL SelectステートメントのCDate()でラップして、比較のために日付に変換することができます。

see a similar answer here

+0

OPは尋ねていますデータがデータベース内の文字列として格納されているときのクエリの日付と比較するには、文字列をClassic ASP/VBScriptの日付に変換しないでください。 – Lankymart

+0

データベースに格納されているものは、日付/時刻オブジェクトではありません.CDATE()を使用すると日付/時刻オブジェクトに変換され、日付比較に使用できます。以下の答えとして、AccessデータベースのSQL文/クエリでCDate()を使用することができます。 – tamak

+0

私が言ったことは、「データが文字列として格納されている」ということではありませんでした。これは、OPの前に[tag:ms-access]を使用していることを確認する前のすべてでした。私のコメントは、[リンクされた回答](http://stackoverflow.com/questions/8710309/how-to-convert-string-to-datetime-format-classic-asp)を対象としていました。 – Lankymart

関連する問題