You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符串'300520231644'转换为30/05/2023 16:44格式日期?

解决Oracle SQL字符串转指定日期格式的问题

你的问题核心是格式模型与输入字符串不匹配,且混淆了to_date和to_char的用途:

  • to_date负责将字符串转换为Oracle的日期类型,格式模型必须严格对应输入字符串的结构;
  • 要输出30/05/2023 16:44这种带分隔符的字符串格式,需要用to_char将日期类型转换为指定格式的文本。

正确实现代码

针对目标字符串'300520231644'(结构为:2位日+2位月+4位年+24小时制2位小时+2位分钟),正确的SQL语句如下:

SELECT TO_CHAR(TO_DATE('300520231644', 'ddmmyyyyhh24mi'), 'dd/mm/yyyy hh24:mi') AS formatted_datetime
FROM dual;

代码说明

  1. 字符串转日期:
    TO_DATE('300520231644', 'ddmmyyyyhh24mi')中的格式模型ddmmyyyyhh24mi完全匹配输入结构:

    • dd:2位日
    • mm:2位月
    • yyyy:4位年
    • hh24:24小时制的2位小时
    • mi:2位分钟
  2. 日期转指定格式字符串:
    TO_CHAR(..., 'dd/mm/yyyy hh24:mi')将日期类型转换为带分隔符的目标格式,确保输出固定为30/05/2023 16:44样式,不受会话NLS参数影响。

针对你示例中'3005231429'的适配

如果输入字符串是2位年份(如'3005231429'对应2023年5月30日14:29),只需将格式模型的年份部分改为rr(自动处理世纪):

SELECT TO_CHAR(TO_DATE('3005231429', 'ddmmrrhhnn'), 'dd/mm/yyyy hh24:mi') AS formatted_datetime
FROM dual;

内容的提问来源于stack exchange,提问作者user19711048

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:52:52