【发布时间】:2018-12-03 05:34:10
【问题描述】:
我是 Oracle 新手,在 Oracle 10g 中工作。我有一个表WW_WAGEMAST,它有一个varchar2(11) 类型的列用于保存PF_Join_date。它具有ddmmyyyy 和dd/mm/yyyy 两种格式的日期。我想以单一格式 dd/mm/yyy 转换所有日期。我该怎么做?
例如——目前的情况:
PF_JOIN_DATE
------------
01/04/2018
02042018
03042018
04/04/2018
05042018
我需要将所有内容更改为这样的单一格式:
PF_JOIN_DATE
---------------
01/04/2018
02/04/2018
03/04/2018
04/04/2018
05/04/2018
我该怎么做?请帮我。提前致谢。
【问题讨论】:
-
其糟糕的设计使用 varchar 作为日期,而是使用日期数据类型
-
“我想将所有日期转换为单一格式 dd/mm/yyyy” - 为什么?由于您打算更改记录,我建议这是一个彻底修改表定义并更改
PF_JOIN_DATE的数据类型的好机会。只需使用类似this 的函数返回日期,将其放入另一列,删除PF_Join_date并将此列重命名为PF_Join_date -
永远不要将 DATE 值存储在
varchar列中。您当前的问题是错误设计决策的直接结果。
标签: sql oracle oracle11g oracle10g