dポイントプレゼントキャンペーン実施中!

Oracleの日付型で苦労しております。
教えてください。

言語
ASP(VBscript)
データベース
Oracle

下記のようなプログラムを作成しました。

STARTTIME=CDate(2010/2/16 13:00:00)
SYURYOTIME=CDate(2010/2/16 14:00:00)

SQL="SELECT * FROM TABLE "
SQL=SQL & "WHERE TO_CHAR(Field,'yyyy/mm/dd HH24:MI:SS') BETWEEN '" & STARTTIME & "' AND '" & SYURYOTIME & "'"
Set rs0 = OraDatabase.DbCreateDynaset(SQL, 0)

この場合は予想通りの結果を返します。

しかし、時刻を10時以前の
STARTTIME=CDate(2010/2/16 08:00:00)
SYURYOTIME=CDate(2010/2/16 09:00:00)
にすると予想外の結果を返しません。

これは、Oracle側の形式"2010/2/16 08:00:00"で、
CDate関数側が"2010/2/16 8:00:00"となってしまうためと考えていますが、対応方法がわかりません。

何卒、ご教授くださいますようお願い致します。

A 回答 (2件)

ASP(VBScript)では、Format関数のような物はないので、


書式を何とかしたいのであれば、下記のサイトが参考に
なります。

http://www.b-s-c.co.jp/~moritake/oboegaki/h_vbs_ …


自分だったら、SQL文の方で書式をあわせますが
それでは駄目なのでしょうか

SQL文ならORACLEのTO_DATEで書式あわせができますけど

例(動作未確認)

STARTTIME="2010/2/16 08:00:00"
SYURYOTIME="2010/2/16 09:00:00"

SQL="SELECT * FROM TABLE "
SQL=SQL & "WHERE Field BETWEEN to_date('" & STARTTIME & "' ,'yyyy/mm/dd hh24:mi:ss')" & _
" AND to_date('" & SYURYOTIME & "' ,'yyyy/mm/dd hh24:mi:ss') "
    • good
    • 0

Format(STARTTIME, "yyyy/MM/dd HH:mm:ss")


Format(SYURYOTIME, "yyyy/MM/dd HH:mm:ss")

Format は Microsoft.VisualBasic.Format です。

あと、個人的には SYURYOTIME は ENDTIME にして欲しいです。(どうでもいいことですが)
    • good
    • 0

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