日期时间表达式(Datetime Expression)会生成日期时间数据类型的值。
语法如下:
{TIMESTAMP | DATE} string
TIMESTAMP 或 DATE 加上字符串字面量可以生成 TIMESTAMP 或 DATE 类型的值,注意字符串的格式要与系统变量 NLS_TIMESTAMP_FORMAT
和 NLS_DATE_FORMAT
一致。
系统变量的值可以通过下面的 SQL 查询:
obclient> SELECT * from v$nls_parameters WHERE parameter like '%FORMAT';
+-------------------------+------------------------------+--------+
| PARAMETER | VALUE | CON_ID |
+-------------------------+------------------------------+--------+
| NLS_DATE_FORMAT | DD-MON-RR | 0 |
| NLS_TIMESTAMP_FORMAT | DD-MON-RR HH.MI.SSXFF AM | 0 |
| NLS_TIMESTAMP_TZ_FORMAT | DD-MON-RR HH.MI.SSXFF AM TZR | 0 |
+-------------------------+------------------------------+--------+
3 rows in set (0.00 sec)
例如系统变量 NLS_TIMESTAMP_FORMAT
的值为 DD-MON-RR HH.MI.SSXFF AM
,可以用下面的表达式生成一个 timestamp 类型的值。
obclient> SELECT timestamp '2020-01-01 10:00:00' FROM DUAL;
+---------------------------------+
| TIMESTAMP'2020-01-0110:00:00' |
+---------------------------------+
| 01-JAN-20 10.00.00.000000000 AM |
+---------------------------------+
1 row in set (0.01 sec)