§ Oracle兼容-语法-SYSDATE_IS_NOW模式
§ 1. 语法
SET [GLOBAL|SESSION] sql_mode = SYSDATE_IS_NOW;
1
§ 2. 定义和用法
在启用 sql_mode = SYSDATE_IS_NOW
模式后,函数 SYSDATE()
与 NOW()
将表现一致。
除了修改 sql_mode
,还可以增加启动参数 --sysdate_is_now
,这么做实现的功能是一致的,但启动参数不能动态修改,而 sql_mode
则可以在线动态修改。
注意:
在 oracle_mode 的情况下,无论sql_mode 中是否含有 SYSDATE_IS_NOW
SYSDATE 的行为都等价与 now(6)
§ 3. 示例
greatsql> SET sql_mode = '';
greatsql> SELECT NOW(), SYSDATE();
+---------------------+---------------------+
| NOW() | SYSDATE() |
+---------------------+---------------------+
| 2023-11-14 16:26:42 | 2023-11-14 16:26:42 |
+---------------------+---------------------+
greatsql> SELECT NOW(), SLEEP(1) , SYSDATE();
+---------------------+----------+---------------------+
| NOW() | SLEEP(1) | SYSDATE() |
+---------------------+----------+---------------------+
| 2023-11-14 16:26:27 | 0 | 2023-11-14 16:26:28 |
+---------------------+----------+---------------------+
1 row in set (1.00 sec)
greatsql> SET sql_mode = SYSDATE_IS_NOW;
greatsql> SELECT NOW(), SLEEP(1) , SYSDATE();
+---------------------+----------+---------------------+
| NOW() | SLEEP(1) | SYSDATE() |
+---------------------+----------+---------------------+
| 2023-11-14 16:27:27 | 0 | 2023-11-14 16:27:27 |
+---------------------+----------+---------------------+
1 row in set (1.00 sec)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
扫码关注微信公众号