Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


TO_DATE

📄字数 851
👁️阅读量 加载中...

功能描述

将字符串转换为指定格式日期类型。

语法格式

sql
TO_DATE(expr1[, expr2])

输入参数

  • expr1VARCHAR 数据类型,或能隐式转换为 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  |
+--------------------------+