select to_date('2008-11-7 14:05:42','yyyy-mm-dd hh24:mi:ss') from dual这个查询出来显示:07-十一月-2008 02:05:42 PM 后面有显示PM,
那我在这条语句select to_date('2008-11-7 02:05:42','yyyy-mm-dd hh12:mi:ss') from dual
后加什么它也能显示是07-十一月-2008 02:05:42 PM?跟用hh24一样的效果?
希望各位前辈帮帮忙,先谢谢了
CREATE OR REPLACE FUNCTION GET_DATE(P_DATE IN VARCHAR2) RETURN VARCHAR2 AS
V_MM1 CHAR(2);--取得月份数值
V_MM2 VARCHAR2(2);--取得月份字符值
V_DATE VARCHAR2(50);--返回结果日期
BEGIN
SELECT TO_CHAR(TO_DATE(P_DATE, 'YYYY-MM-DD HH:MI:SS'),
'MM') INTO V_MM1
FROM DUAL;
SELECT TRIM(DECODE(V_MM1, 01,' 一 ',02,' 二 ',03,' 三 ',04,' 四 ',05,' 五 ',06,' 六 ',07,' 七 ',08,' 八 ',09,' 九 ',10,' 十 ',11,' 十一 ',12,' 十二 ')) INTO V_MM2 FROM DUAL;
SELECT TO_CHAR(TO_DATE(P_DATE, 'YYYY-MM-DD HH:MI:SS'),
'DD-MM"月"-YYYY HH:MI:SS AM') INTO V_DATE
FROM DUAL;
V_DATE := REPLACE(V_DATE,SUBSTR(V_DATE,4,2),V_MM2);
RETURN V_DATE;
END;执行语句
select get_date('2008-11-7 02:05:42') from dual;应该可以得到想要的值
sql->alter session set nls_date_language=english;
然后执行,ok