현재, 과거, 미래의 날짜, 시간 구하기

2012. 11. 8. 10:47 IT/Sql

1. 현재 날짜,시간과 미래 날짜, 시간

 
SELECT
                SYSDATE "현재 날짜"
                --TRUNC(SYSDATE) : 시/분/초 를 제외한 연,월,일만 나타냄
                ,TRUNC(SYSDATE) "TRUNC()_현재날짜"
                ,(SYSDATE + 1 / 1440 * 10) "10분 후"
                ,(SYSDATE + 1 / 1440 * 60) "60분 후"
                ,(SYSDATE + 7) "7일후 같은시간"                
                ,TRUNC(SYSDATE + 7) "TRUNC()_7일후"
                ,(SYSDATE + 1) + 6 / 24 "1일 6시간 후"
                ,(SYSDATE + 1) + 18 / 24 "1일 18시간 후"
                ,TRUNC(SYSDATE + 1) + 6 / 24 "1일 후의 6:00"
                ,TRUNC(SYSDATE + 7) + 18 / 24 "7일 후의 18:00"
            FROM DUAL;

결과화면(클릭하시면 확대됩니다.)

 

2. 현재 날짜,시간과 과거 날짜, 시간

 
SELECT
                SYSDATE "현재 날짜"
                --TRUNC(SYSDATE) : 시/분/초 를 제외한 연,월,일만 나타냄
                ,TRUNC(SYSDATE) "TRUNC()_현재날짜"
                ,(SYSDATE - 1 / 1440 * 10) "10분 전"
                ,(SYSDATE - 1 / 1440 * 60) "60분 전"
                ,(SYSDATE - 7) "7일전 같은시간"                
                ,TRUNC(SYSDATE - 7) "TRUNC()_7일전"
                ,(SYSDATE - 1) - 6 / 24 "1일 6시간 전"
                ,(SYSDATE - 1) - 18 / 24 "1일 18시간 전"
                ,TRUNC(SYSDATE - 1) - 6 / 24 "1일 전의 6:00"
                ,TRUNC(SYSDATE - 7) - 18 / 24 "7일 전의 18:00"
            FROM DUAL;

결과화면(클릭하시면 확대됩니다.)

 

3.

 
--현재 달의 첫날을 시/분/초를 제외한 형식으로 나타냄
SELECT TRUNC(SYSDATE,'MONTH') "현재달의 첫날" FROM DUAL;

결과화면

4.

 
--현재 달의 첫날을 YYYY-MM-DD-HH24-MI-SS 형식으로 나타냄
SELECT TO_CHAR(TRUNC(SYSDATE,'MONTH'),'YYYY-MM-DD-HH24-MI-SS') "현재달의 첫날" FROM DUAL;

결과화면

 

5.

 
--현재 년도의 첫날을 시/분/초를 제외한 형식으로 나타냄
SELECT TRUNC(SYSDATE,'YEAR') "현재년도의 첫날" FROM DUAL;

결과화면

'IT > Sql' 카테고리의 다른 글

AS  (0) 2012.11.08
TO_NUMBER, CASE, IN, UNION ALL  (0) 2012.10.30

AS

2012. 11. 8. 10:43 IT/Sql

SELECT 할때 결과창의 열의 이름을 지정할 때
 
SELECT COLUMN AS NAME FROM TABLE;
SELECT COLUMN "NAME" FROM TABLE;
이렇게 할수 있음
AS 뒤에 숫자나 숫자로 시작하는 컬럼명 지정이 안되는데
그렇게하고 싶을때 ""를 사용하면 좋을듯.

'IT > Sql' 카테고리의 다른 글

현재, 과거, 미래의 날짜, 시간 구하기  (0) 2012.11.08
TO_NUMBER, CASE, IN, UNION ALL  (0) 2012.10.30

TO_NUMBER, CASE, IN, UNION ALL

2012. 10. 30. 16:55 IT/Sql

기존 쿼리결과에
다른 쿼리를 UNION ALL 하는 예제
 
SELECT 
    PROF_GB,
    TO_NUMBER(:LECTURE_SEQ) AS LECTURE_SEQ, 
    --입력받는 LECTURE_SEQ가 문자열일때 TO_NUMBER를 통하여 문자->숫자로 바꿔줌
    USER_ID
FROM 
(                   
    SELECT 
        CASE
        WHEN (SELECT PROF_ID FROM LMS_LECTURE WHERE LECTURE_SEQ = :LECTURE_SEQ) = A.USER_ID  
        THEN 1
        WHEN (SELECT CPROF_ID FROM LMS_LECTURE WHERE LECTURE_SEQ = :LECTURE_SEQ) = A.USER_ID  
        THEN 2
        WHEN (SELECT CPROF_ID2 FROM LMS_LECTURE WHERE LECTURE_SEQ = :LECTURE_SEQ) = A.USER_ID  
        THEN 3
        WHEN (SELECT CPROF_ID3 FROM LMS_LECTURE WHERE LECTURE_SEQ = :LECTURE_SEQ) = A.USER_ID  
        THEN 4
        ELSE 5  --학생인 경우
        END AS PROF_GB,
    A.*
    FROM
        LMS_USER A
)
WHERE PROF_GB IN (1,2,3,4)  --IN을 사용하여 PROF_GB가 1,2,3,4에 해당하는 결과 골라내기
UNION ALL   --위, 아래 쿼리의 결과를 하나로 합치기(중복 제거X) UNION은 중복 제거
    SELECT
        5 AS PROF_GB,   --  A테이블에 PROF_GB가 없지만 위의 결과와 합치기 위해 임의로 5설정
        A.LECTURE_SEQ, 
        A.USER_ID
    FROM 
        LMS_LECTURE_REGIST A
    WHERE 
        LECTURE_SEQ = :LECTURE_SEQ
ORDER BY PROF_GB    --검색 결과를 PROF_GB로 정렬

'IT > Sql' 카테고리의 다른 글

현재, 과거, 미래의 날짜, 시간 구하기  (0) 2012.11.08
AS  (0) 2012.11.08

Recent Posts

Recent Comments

Recent Trackbacks

Copyright © 집착남의 이야기 All Rights Reserved | JB All In One Version 0.1 Designed by CMSFactory.NET