【问题标题】:Convert varchar2 to Date ('MM/DD/YYYY') in PL/SQL在 PL/SQL 中将 varchar2 转换为日期 ('MM/DD/YYYY')
【发布时间】:2013-04-27 02:34:59
【问题描述】:

我需要将字符串从 varchar 转换为 'MM/DD/YYYY' 格式的日期。我的输入字符串是“4/9/2013”​​,我的预期输出是“04/09/2013”​​。即 2 位月份、2 位日期和 4 位年份,以'/'分隔

我有以下数据: DOJ varchar2(10 Byte) 列具有 '4/9/2013' 值。 我正在使用 EmpTable 中的 'select TO_DATE(DOJ,'MM/DD/YYYY')。但我得到的结果是 09-APR-13。我想要 04/09/2013 格式。

请指教。提前致谢。

【问题讨论】:

  • A DATE 没有格式,如果只是在您要求数据库或应用程序显示时转换为特定格式。如果需要特定格式的日期,则需要将 varchar 转换为 varchar
  • 用 oracle sql 11g 试试TO_DATE(SUBSTR(DOJ, 1, 11), 'dd/mm/rrrr')

标签: date plsql format


【解决方案1】:

最简单的方法可能是从 VARCHAR 转换为 DATE;然后以您想要的格式再次将其格式化回 VARCHAR;

SELECT TO_CHAR(TO_DATE(DOJ,'MM/DD/YYYY'), 'MM/DD/YYYY') FROM EmpTable;

An SQLfiddle to test with.

【讨论】:

    【解决方案2】:

    首先将 VARCHAR 转换为 DATE,然后再转换回 CHAR。我几乎每天都这样做,但从未找到更好的方法。

    select TO_CHAR(TO_DATE(DOJ,'MM/DD/YYYY'), 'MM/DD/YYYY') from EmpTable
    

    【讨论】:

      【解决方案3】:

      查询示例: SELECT TO_CHAR(TO_DATE('2017-08-23','YYYY-MM-DD'), 'MM/DD/YYYY') FROM dual;

      【讨论】:

      • 这需要代码格式和解释才能成为有效答案。我建议您将tour 阅读How to Answer 然后edit 您的帖子以使其成为高质量的帖子
      猜你喜欢
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多