我需要将日期09/01/2009转换为CHAR TYPE FORMAT。结果应该有6位数字。
我知道TO_CHAR
函数可以做到这一点,但它对我不起作用
日期为2008年6月3日
SELECT TO_CHAR(030608, 'DD MONTH,YYYY')
FROM dual;
这主要给出了错误语法。
它是Oracle数据库,我必须获得STRING
。例如,像-"200901"这样的数字
SQL> -- Examples of the conversion functions.
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
d1 DATE;
d2 DATE;
d3 DATE;
d4 DATE;
BEGIN
d1 := TO_DATE('1/1/02','mm/dd/yy');
d2 := TO_DATE('1-1-1998','mm-dd-yyyy');
d3 := TO_DATE('Jan 1, 2000','mon dd,yyyy');
d4 := TO_DATE('1/1/02','mm/dd/rr');
DBMS_OUTPUT.PUT_LINE('d1 = ' || TO_CHAR(d1,'dd-Mon-yyyy'));
DBMS_OUTPUT.PUT_LINE('d2 = ' || TO_CHAR(d2,'mm/dd/yyyy'));
DBMS_OUTPUT.PUT_LINE('d3 = ' || TO_CHAR(d3,'Day, Month dd, yyyy'));
DBMS_OUTPUT.PUT_LINE('d4 = ' || TO_CHAR(d4,'Dy, Mon dd, yyyy'));
END;
从这个中获取提示
不确定您试图通过上述查询实现什么,但您需要将其修改为这个
select to_char(to_date('03062008','ddmmyyyy'),'yyyymm') from dual;
或
select to_char(to_date('030608','ddmmyy'),'yyyymm') from dual;
to_char(sysdate, 'yyyymm'); would return '201106'
Oracle的DATE默认格式为"DD-MON-YY"。要转换特定日期,您可以编写
to_char('02-Jun-11', 'yyyymm'); should return '201106'
但更好:
to_char(to_date('09/01/2009', 'dd/mm/yyyy'), 'yyyymm'); should return '200901'
请参阅http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html
尝试以下操作:
Input Desired output How to get there
030608 '03/06/2008' TO_CHAR(030608, 'DD/MM/YYYY')
'030608' '03/06/2008' TO_CHAR(TO_DATE('030608', 'DDMMYY'), 'DD/MM/YYYY')
分享并享受。