TO_DATE
📄字数 851
👁️阅读量 加载中...
功能描述
将字符串转换为指定格式日期类型。
语法格式
sql
TO_DATE(expr1[, expr2])
输入参数
expr1
:VARCHAR
数据类型,或能隐式转换为VARCHAR
类型的其他类型。expr2
:日期时间格式,VARCHAR
数据类型,如:YYYY-MM-DD HH24:MI:SS
,若省略expr2
,默认格式由会话参数 TIME_FORMAT 确定。
日期时间格式说明
格式(不区分大小写) | 描述 |
---|---|
YY/YYY/YYYY | 年 |
MM | 月 |
DD/DDD | 日 |
HH/HH24 | 小时 |
MI | 分钟 |
SS[.SSSSSS] | 秒(精度可选) |
输出结果
返回 DATETIME
类型,任意输入参数为 NULL
时,输出结果为 NULL
。
注意
- 当时间串格式不带时分秒时(如:
SET def_timefmt TO 'YYYY-MM-DD'
),执行SQL命令:SELECT TO_DATE(SYSDATE);
,输出结果的时、分、秒部分为00:00:00.000
。原因是TO_DATE(CHAR)
函数的参数是VARCHAR
类型,执行时,SYSDATE
会按客户端连接会话上的时间格式
转换成VARCHAR
类型的字符串,然后再转换为DATETIME
类型。
示例
sql
-- 将 '02-22-2022 02:00:00' 字符串按 'mm-dd-yyyy hh24:mi:ss' 格式解析为时间日期类型
SQL> SELECT TO_DATE('02-22-2022 02:00:00', 'mm-dd-yyyy hh24:mi:ss') FROM dual;
+--------------------------+
| EXPR1 |
+--------------------------+
| 2022-02-22 02:00:00.000 |
+--------------------------+
-- 将 '202533' 字符串按 'yyyyddd' 格式解析为时间日期类型
SQL> SELECT TO_DATE('202533', 'yyyyddd') FROM dual;
+--------------------------+
| EXPR1 |
+--------------------------+
| 2025-02-02 00:00:00.000 |
+--------------------------+
-- 将 '25-3-3 20:30:30.123456' 字符串按 'yy-mm-dd hh:mi:ss.ssss' 格式解析为时间日期类型
SQL> SELECT TO_DATE('25-3-3 20:30:30.123456', 'yy-mm-dd hh:mi:ss.ssss') FROM dual;
+--------------------------+
| EXPR1 |
+--------------------------+
| 2025-03-03 20:30:30.123 |
+--------------------------+