11g Enterprise Edition Release 11.2.0.1.0
(SELECT DATE '2018-02-01' FROM DUAL;
)中的下两个查询有什么区别:
SELECT DATE('2018-02-01') FROM DUAL;
和
first one work fine
next one I get next error
,ORA-00936: missing expression
:
/**
* @Assert\Expression(
* "'1' in this.getCheckboxValues() and !('3' in this.getCheckboxValues())",
* )
*/
由于 BR
答案 0 :(得分:1)
来自Oracle docs:
您可以将
DATE
值指定为字符串文字,也可以转换为 具有TO_DATE
函数的日期值的字符或数值。DATE
文字是Oracle数据库接受的唯一案例TO_DATE
表达式代替字符串文字。 要将DATE
值指定为文字,必须使用格里高利 日历。您可以指定ANSI文字,如下例所示:DATE '1998-12-25'
ANSI日期文字不包含时间部分,必须指定 格式为
'YYYY-MM-DD'
。或者,您可以指定Oracle 日期值,如下例所示:TO_DATE('98-DEC-25 17:30','YY-MON-DD HH24:MI')
请注意,根据Wernfried Domscheit的说法,多年使用2位数并不是一个好主意。如果您想使用to_date
,最好使用4位数格式:
TO_DATE('1998-DEC-25 17:30','YYYY-MON-DD HH24:MI')