我的一张桌子的日期值是2016-02-15T18:30:00.000Z,我需要显示与15/2/2016 6:30:00 PM相同的值。
我正在尝试使用TO_CHAR,如下所示:
a:=2016-02-15T18:30:00.000Z
b:= TO_CHAR(a, 'MM/D/YYYY HH12:MI:SS AM');
但它根本不起作用。
答案 0 :(得分:0)
您对a的分配在PL / SQL中无效。试试这个:
<body>
我对以下评论中的代码进行了改进:
declare
a date;
b varchar2(20);
begin
a:= timestamp '2016-02-15 18:30:00.000';
b:= TO_CHAR(a, 'MM/D/YYYY HH12:MI:SS AM');
dbms_output.put_Line(b);
end;
答案 1 :(得分:0)
根据您的要求,此日期格式无法识别 甲骨文。你需要调整输入,以便oracle识别它。希望 下面的片段可以帮助你。
SET SERVEROUTPUT ON;
DECLARE
lv_input VARCHAR2(100):='2016-02-15T18:30:00.000Z';
lv_date TIMESTAMP;
lv_out_req VARCHAR2(100 CHAR);
BEGIN
SELECT TO_TIMESTAMP(REPLACE(REPLACE(lv_input,'T',' '),'Z',''),'YYYY-MM-DD HH24:MI:SS.FF6')
INTO lv_date
FROM DUAL;
dbms_output.put_line('Input varchar '||lv_input||' --> '||lv_date);
lv_out_req:=to_char(lv_date,'mm/dd/yyyy hh24:mi:ss');
dbms_output.put_line('Out formated varchar '||lv_out_req);
END;
---------------------------------OUTPUT--------------------------------------
PL/SQL procedure successfully completed.
Input varchar 2016-02-15T18:30:00.000Z --> 02/15/2016 18:30:00.000000
Out formated varchar 02/15/2016 18:30:00
---------------------------------------------------------------------------
答案 2 :(得分:0)
尝试在Oracle中这样做:
select to_char(to_timestamp('2016-02-15T18:30:00.000Z','YYYY-MM DD"T"HH24:MI:SS.ff3"Z"'),'DD/MM/YYYY HH24:MI:SS AM') from dual