默认时间格式(def_timefmt)
📄字数 867
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
新建连接和部分系统函数执行时的默认时间格式。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | VARCHAR |
| 默认值 | 'YYYY-MM-DD HH24:MI:SS' |
| 取值范围 | {'YYYY-MM-DD HH24:MI:SS', 'YYYYMMDDHH24MISS'} |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数作为新建连接的默认时间格式(未显式指定 TIME_FORMAT 会话参数时)。
- 连接上的时间格式会在诸多场景下作为针对字符串表示的时间日期值的解析规则:
| def_timefmt 的应用场景 |
|---|
| 1. 创建/修改用户(用户过期时间常量解析); 2. 流式导入(时间值常量解析); 3. 系统级恢复(恢复点时间值常量解析); 4. SQL 解析(语句中的时间值常量解析); 5. 系统函数 TO_TIMESTAMPZ 、TO_DATE、TO_CHAR、 STROF、TO_NCHAR、JSON_VALUE 等; 6. 涉及时间日期的类型转换(CAST( DATE AS CHAR)、 CAST(DATETIME AS CHAR) 、CAST(DATETIME WITH TIME ZONE AS CHAR)等);7. 时间日期类数值的结果集输出格式; |
注意
- 在线修改 def_timefmt,不会影响已有的连接,只会影响新建连接。
- 若用户输入的由字符串表示的时间值常量与连接上的默认时间格式(def_timefmt)不兼容,系统将上报 E19138 异常。
示例
sql
-- 在线修改 def_timefmt
SQL> SET def_timefmt TO 'YYYY-MM-DD HH24:MI:SS';
-- 在线查看 def_timefmt
SQL> SHOW def_timefmt;
/*
* 场景一:
* 1. def_timefmt = 'YYYY-MM-DD HH24:MI:SS';
* 2. 新建会话连接;
*/
SQL> SELECT CAST('20251127 150101' AS DATETIME); -- 抛出异常 E19138 时间值常数错误
/*
* 场景二:
* 1. def_timefmt = 'YYYY-MM-DD HH24:MI:SS';
* 2. 新建会话连接;
*/
SQL> SELECT CAST('2025-11-27 15:01:01' AS DATETIME); -- 输出 '2025-11-27 15:01:01.000'