Необходимо преобразовать дату 01.09.2009 в ФОРМАТ ТИПА ЧАР - PullRequest
0 голосов
/ 02 июня 2011

Мне нужно преобразовать дату 01.09.2009 в ФОРМАТ ТИПА ЧАР. Результат должен иметь 6 цифр.

Я знал, что функция TO_CHAR делает это, но она не работает для меня.

Дата указана в виде 03/06/08

SELECT TO_CHAR(030608, 'DD MONTH,YYYY')
 FROM dual;

В основном это синтаксис ошибок.

Это база данных Oracle, и я должен получить STRING. Например, число типа -'200901 '

Ответы [ 4 ]

2 голосов
/ 02 июня 2011
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;

Возьмите подсказку от этого

1 голос
/ 02 июня 2011

Не уверен, что вы пытаетесь достичь с помощью указанного запроса, но вам нужно изменить его на это

select to_char(to_date('03062008','ddmmyyyy'),'yyyymm') from dual;

OR

select to_char(to_date('030608','ddmmyy'),'yyyymm') from dual;
1 голос
/ 02 июня 2011
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

0 голосов
/ 02 июня 2011

Попробуйте следующее:

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')

Делись и наслаждайся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...