日期时间表达式(Datetime Expression)会生成日期时间数据类型的值。

    语法如下:

    1. {TIMESTAMP | DATE} string

    TIMESTAMP 或 DATE 加上字符串字面量可以生成 TIMESTAMP 或 DATE 类型的值,注意字符串的格式要与系统变量 NLS_TIMESTAMP_FORMATNLS_DATE_FORMAT 一致。

    系统变量的值可以通过下面的 SQL 查询:

    1. obclient> SELECT * from v$nls_parameters WHERE parameter like '%FORMAT';
    2. +-------------------------+------------------------------+--------+
    3. | PARAMETER | VALUE | CON_ID |
    4. +-------------------------+------------------------------+--------+
    5. | NLS_DATE_FORMAT | DD-MON-RR | 0 |
    6. | NLS_TIMESTAMP_FORMAT | DD-MON-RR HH.MI.SSXFF AM | 0 |
    7. | NLS_TIMESTAMP_TZ_FORMAT | DD-MON-RR HH.MI.SSXFF AM TZR | 0 |
    8. +-------------------------+------------------------------+--------+
    9. 3 rows in set (0.00 sec)

    例如系统变量 NLS_TIMESTAMP_FORMAT 的值为 DD-MON-RR HH.MI.SSXFF AM,可以用下面的表达式生成一个 timestamp 类型的值。

    1. obclient> SELECT timestamp '2020-01-01 10:00:00' FROM DUAL;
    2. +---------------------------------+
    3. | TIMESTAMP'2020-01-0110:00:00' |
    4. +---------------------------------+
    5. | 01-JAN-20 10.00.00.000000000 AM |
    6. +---------------------------------+
    7. 1 row in set (0.01 sec)