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

视图中将varchar2类型转换为date类型的方法

在Oracle中将VARCHAR2类型的日期字符串转换为DATE类型

首先明确:Oracle的DATE类型仅支持到秒级精度,你的字符串末尾的:209是毫秒部分,转换后这部分会被自动截断,无法保留在DATE类型中。如果需要保留毫秒,建议使用TIMESTAMP类型替代。

转换方案

方案1:直接使用TO_DATE函数(忽略毫秒)

针对你的字符串格式'26Jul2022 10:05:52:209',匹配的格式掩码为'DDMonYYYY HH24:MI:SS',SQL示例:

SELECT TO_DATE(your_varchar_column, 'DDMonYYYY HH24:MI:SS') AS converted_date
FROM your_view;

如果数据库默认语言不是英文,可能需要指定日期语言参数,确保Jul能被正确识别:

SELECT TO_DATE(your_varchar_column, 'DDMonYYYY HH24:MI:SS', 'NLS_DATE_LANGUAGE=ENGLISH') AS converted_date
FROM your_view;

方案2:先转TIMESTAMP再转DATE(同样截断毫秒)

如果想先完整解析包含毫秒的字符串,再转为DATE类型,可以这样写:

SELECT CAST(TO_TIMESTAMP(your_varchar_column, 'DDMonYYYY HH24:MI:SS:FF3') AS DATE) AS converted_date
FROM your_view;

补充说明

如果需要保留毫秒信息,不要使用DATE类型,直接用TO_TIMESTAMP转换为TIMESTAMP类型即可:

SELECT TO_TIMESTAMP(your_varchar_column, 'DDMonYYYY HH24:MI:SS:FF3') AS converted_timestamp
FROM your_view;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:50:27