oracle sql中的日期函数

时间:2018-02-01 08:42:34

标签: sql oracle oracle11g

11g Enterprise Edition Release 11.2.0.1.0SELECT DATE '2018-02-01' FROM DUAL; )中的下两个查询有什么区别:

SELECT DATE('2018-02-01') FROM DUAL;

first one work fine

next one I get next errorORA-00936: missing expression

/**
 * @Assert\Expression(
 *     "'1' in this.getCheckboxValues() and !('3' in this.getCheckboxValues())",
 * )
 */

由于 BR

1 个答案:

答案 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')