简单的Oracle SQL日期语法问题

Joe*_*Joe 7 sql oracle vbscript ms-access date

我正在尝试将正在运行的MS Access查询转换为在通过VB脚本(.asp)访问的Oracle数据库上运行.这是WHERE子句的最后一部分:

sql = sql & "WHERE (UAT.HB.MB_MODE = 'A' AND   UAT.HB.PRINT_DATE >= '" 
& SD & "' AND UAT.HB.PRINT_DATE <= '" & ED  &"'  )"
Run Code Online (Sandbox Code Playgroud)

变量"SD"(即"开始日期")是一个文本字符串,可以包含诸如"11/11/2008"之类的值.变量"ED"(即"结束日期")也是如此.

但是,日期不起作用.Oracle是否需要特殊的方式来使用日期?

日期是否必须转换?我是否像在MS Access中一样用'#'关键字包围它们?

Bil*_*win 17

在Oracle中,您的日期应该写为ANSI日期文字,如下所示:

DATE '2008-11-11'
Run Code Online (Sandbox Code Playgroud)

或者从这样的字符串转换为日期:

TO_DATE('11/11/2008', 'MM/DD/YYYY')
Run Code Online (Sandbox Code Playgroud)

看到这里


gpo*_*ojd 8

不要假设默认的Oracle日期格式是任何东西.检查NLS_DATE_FORMAT或使用TO_DATE进行转换.像这样:

TO_DATE('2008-11-18 14:13:59', 'YYYY-MM-DD HH24:Mi:SS')
Run Code Online (Sandbox Code Playgroud)

注意分钟的'Mi'而不是'MM'.这抓住了很多人.


Bre*_*ann 0

Oracle 的默认日期格式是“dd-mon-yy”。您可以对日期字段执行 TO_CHAR 函数,将其转换为您喜欢匹配的格式。