쿼리를 날려서 AM, PM을 표시해주려고 합니다. 0 2 5,236

by 찰스 [SQL Query] [2010.11.24 16:25:46]




질문1.


T_SHIFT 테이블에 STD_DATE 항목에
날짜 형식으로 "201012132210"라고 입력이 되어 있습니다.

그런데 저는 여기서 쿼리를 날려서
AM, PM을 표시해주려고 합니다.

보통 오라클 데이터에 "20101213AM2210" 이렇게 AM이라고 써 있다면 불러와지는데
"201012132210" 이상태에서 AM을 추가하려고 하면 위와 같은 에러가 발생하네요.


오라클DB에 값이 없다면 불러올수 없나요?
저는 무조건 AM PM을 불러오고 싶다면
어떻게 해야 하나요?


DB에 값 변경하는거 말고 다른 방법
부탁드립니다.!!


--------------------------------------------------------------------------


질문2.

오라클 쿼리를 날릴때


DB -> 조건 앞에서 8자리에서   <- 조건1
  2자리의 수가 12 보다 크면 PM <- 조건2
  12 보다 작으면 AM
  AM PM을 20101022( )123222 <- 조건3
  ()부분에 넣는다.

위아 같은 조건을 걸어서 날릴 수 있나요?

가능할 것 같은데 .. 어찌해야할지 조언부탁합니다. ㅜㅜ

by v상이v [2010.11.24 16:47:05]
SELECT TO_CHAR(TO_DATE('201012132210','yyyymmddhh24mi'),'YYYY/MM/DD AM HH12:MI')
FROM DUAL



SELECT SUBSTR(V,0,8)||CASE WHEN SUBSTR(V,9,2) <= 12 THEN 'AM' ELSE 'PM' END||SUBSTR(V,9)
FROM (SELECT '20101022123222' V FROM DUAL)

by 마농 [2010.11.25 10:56:01]
원래 AM, PM 이 붙으면 시간은 01~12 까지만 표현됩니다.
반대로 24시간을 표현할때 시간은 00~23 까지만 표현됩니다.
AM2210 이란 표현은 사용 안하죠.

SELECT TO_CHAR(TO_DATE(dt,'yyyymmddhh24mi'), 'yyyymmddAMhhmi', 'nls_date_language=american')
FROM (SELECT '201012132210' dt FROM dual)
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입