小编Ady*_*can的帖子

oracle-将许多日期格式转换为单个格式的日期

我想将包含日期的字符串带入单一格式的日期。例如:

  • 2012年13月6日至2012年6月13日
  • 2012年13月6日至2012年6月13日
  • 2012年6月13日至2012年6月13日
  • 2012年6月13日至2012年6月13日
  • ...

我试图删除所有特殊字符,然后使用函数将该字符串转换为单一日期格式。我的函数返回了更多异常,我不知道为什么...

功能:

CREATE OR REPLACE FUNCTION normalize_date (data_in IN VARCHAR2)
    RETURN DATE
IS
    tmp_month         VARCHAR2 (3);
    tmp_day           VARCHAR2 (2);
    tmp_year          VARCHAR2 (4);
    TMP_YEAR_NUMBER   NUMBER;
    result            DATE;
BEGIN
    tmp_day := SUBSTR (data_in, 1, 2);
    tmp_year := SUBSTR (data_in, -4);

    --if(REGEXP_LIKE(SUBSTR(data_in,3,2), '[:alpha:]')) then 
    if(SUBSTR(data_in,3,1) in ('a','j','i','f','m','s','o','n','d','A','J','I','F','M','S','O','N','D')) then      
    tmp_month := UPPER(SUBSTR (data_in, 3, 3));
    else
    tmp_month := SUBSTR (data_in, 3, 2);
    end if;

    DBMS_OUTPUT.put_line (tmp_year);

    TMP_YEAR_NUMBER := TO_NUMBER (tmp_year);

    IF (tmp_month = 'JAN')
    THEN
        tmp_month := '01'; …
Run Code Online (Sandbox Code Playgroud)

oracle format date

3
推荐指数
1
解决办法
1795
查看次数

标签 统计

date ×1

format ×1

oracle ×1