【问题标题】:How to convert string to date format in OracleOracle中如何将字符串转换为日期格式
【发布时间】:2012-07-25 04:19:40
【问题描述】:

我有一个文件包含像2011-03-14 11:57:42+08:00 这样的字符串,我需要将它存储在具有DATE 数据类型的列中。我使用的是 Oracle 11g。

我尝试了TO_DATE 功能,但没有成功。

谁能帮帮我?

提前致谢

【问题讨论】:

  • 为什么 TO_DATE 不起作用?你用了什么格式参数?
  • to_date 应该可以,向我们展示查询。
  • 我使用这个查询SELECT TO_DATE (TO_CHAR (2011-03-14 11:57:42+08:00, 'YYYY-MON-DD HH24:MI:SS'), 'YYYY-MON-DD HH24:MI:SS') AS my_date FROM DUAL 我错过了什么?

标签: sql datetime oracle11g timestamp


【解决方案1】:

您必须使用函数TO_TIMESTAMP_TZ 来正确解析时区:

SELECT CAST(TO_TIMESTAMP_TZ('2011-03-14 11:57:42+08:00', 'YYYY-MM-DD HH24:MI:SS+TZH:TZM') AS DATE) AS my_date 
  FROM DUAL
 ;

(作为注释中您示例的旁注:不需要TO_CHAR,缺少引用并且格式模型MON(缩写月份)不正确)

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多