database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41565 게시물 읽기
No. 41565
년월, 년월일, 년월일시 데이터가 다 있을때 포맷
작성자
궁금
작성일
2018-05-10 09:26
조회수
5,031

한컬럼에 데이터가 YYYYMM, YYYYMMDD, YYYYMMDDHH24:MI 등 여러 형식이 같이있습니다.

SELECT에서 YYYY-MM-DD HH24:MI 형식으로 조회하고싶은데,

TO_CHAR(날짜,'YYYY-MM-DD HH24:MI') 로 하면

ORA-01840 입력된 값의 길이가 날짜 형식에 비해 부족하다가 나옵니다

어떻게 해야하나요?

이 글에 대한 댓글이 총 3건 있습니다.

WITH t AS
(
SELECT '201805' dt FROM dual
UNION ALL SELECT '20180502'      FROM dual
UNION ALL SELECT '2018050321:30' FROM dual
)
SELECT dt
     , TO_CHAR(TO_DATE(
       RPAD(REPLACE(dt, ':') || DECODE(LENGTH(dt), 6, '01'), 12, '0')
       , 'yyyymmddhh24mi'), 'yyyy-mm-dd hh24:mi') x
  FROM t
;

마농(manon94)님이 2018-05-10 16:17에 작성한 댓글입니다.

마농님 매번감사합니다~

 

201805일떄는 2018-05

20180502 일떄는 2018-05-02

201805022130 일떄는 2018-05-02 21:30 이렇게 나오려면

어떻게 해야할까요?

궁금님이 2018-05-10 16:46에 작성한 댓글입니다. Edit

WITH t AS
(
SELECT '201805' dt FROM dual
UNION ALL SELECT '20180502'     FROM dual
UNION ALL SELECT '201805032130' FROM dual
)
SELECT dt
     , DECODE(LENGTH(dt)
       ,  6, TO_CHAR(TO_DATE(dt, 'yyyymm'        ), 'yyyy-mm'           )
       ,  8, TO_CHAR(TO_DATE(dt, 'yyyymmdd'      ), 'yyyy-mm-dd'        )
       , 12, TO_CHAR(TO_DATE(dt, 'yyyymmddhh24mi'), 'yyyy-mm-dd hh24:mi')
       ) x
  FROM t
;

마농(manon94)님이 2018-05-10 17:32에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41568두 테이블 비교하여 데이터 삭제 [1]
궁금
2018-05-15
5145
41567실수만 남기고 불필요한 문자는 제거 할수 없을까요? [2]
김철호
2018-05-12
5065
41566오라클DB 원래 이런가여?
감나라배나라
2018-05-11
5112
41565년월, 년월일, 년월일시 데이터가 다 있을때 포맷 [3]
궁금
2018-05-10
5031
41564이런 경우 설계를 어떻게 하세요
믹쇼
2018-05-09
4706
41563mssql 의 tinv 함수 오라클로...
박용철
2018-05-09
4638
41561[mybatis]컬럼명을 동적으로 쓸때 달러를 안쓰고 구현하는방법이있나요?
고래
2018-05-08
5393
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.056초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다