복붙노트

[SQL] 오라클 SQL은 어떻게 날짜에서 시간을 제거하는

SQL

오라클 SQL은 어떻게 날짜에서 시간을 제거하는

나는이 형식의 날짜를 포함 STARTDATE라는 이름의 열이 : 03-03-2012 15시 22분

내가 필요한 것은 날짜로 변환하는 것입니다. DD / MM / YYYY : 그것은 다음과 같이보고한다

내가 성공하지 않고 시도하는 것입니다 :

select 
p1.PA_VALUE as StartDate,
p2.PA_VALUE as EndDate
from WP_Work p 
LEFT JOIN PARAMETER p1 on p1.WP_ID=p.WP_ID AND p1.NAME = 'StartDate'
LEFT JOIN PARAMETER p2 on p2.WP_ID=p.WP_ID AND p2.NAME = 'Date_To'
WHERE p.TYPE = 'EventManagement2'
AND TO_DATE(p1.PA_VALUE, 'DD/MM/YYYY') >= TO_DATE('25/10/2012', 'DD/MM/YYYY')
AND TO_DATE(p2.PA_VALUE, 'DD/MM/YYYY') <= TO_DATE('26/10/2012', 'DD/MM/YYYY')

이 작업을 수행 할 수있는 방법이 있나요?

EDIT1 다음 PA_VALUE 열은 다음과 같습니다 VARCHAR2

해결법

  1. ==============================

    1.당신이 날짜로 문자열을 변환 할 때 당신은 문자열의 형식으로 날짜 마스크와 일치해야합니다. 이것은 당신이 절단으로 제거해야 할 시간 요소를 포함합니다 :

    당신이 날짜로 문자열을 변환 할 때 당신은 문자열의 형식으로 날짜 마스크와 일치해야합니다. 이것은 당신이 절단으로 제거해야 할 시간 요소를 포함합니다 :

    select 
        p1.PA_VALUE as StartDate,
        p2.PA_VALUE as EndDate
    from WP_Work p 
    LEFT JOIN PARAMETER p1 on p1.WP_ID=p.WP_ID AND p1.NAME = 'StartDate'
    LEFT JOIN PARAMETER p2 on p2.WP_ID=p.WP_ID AND p2.NAME = 'Date_To'
    WHERE p.TYPE = 'EventManagement2'
    AND trunc(TO_DATE(p1.PA_VALUE, 'DD-MM-YYYY HH24:MI')) >= TO_DATE('25/10/2012', 'DD/MM/YYYY')
    AND trunc(TO_DATE(p2.PA_VALUE, 'DD-MM-YYYY HH24:MI')) <= TO_DATE('26/10/2012', 'DD/MM/YYYY')
    
  2. ==============================

    2.당신은 날짜 시간의 시간 부분을 제거하는 날짜 시간에 TRUNC를 사용할 수 있습니다. 절을 할 수있는 곳 그래서 :

    당신은 날짜 시간의 시간 부분을 제거하는 날짜 시간에 TRUNC를 사용할 수 있습니다. 절을 할 수있는 곳 그래서 :

    AND TRUNC(p1.PA_VALUE) >= TO_DATE('25/10/2012', 'DD/MM/YYYY')
    
  3. ==============================

    3.우리는 오라클 DB에 TRUNC 기능을 사용할 수 있습니다. 다음은 예이다.

    우리는 오라클 DB에 TRUNC 기능을 사용할 수 있습니다. 다음은 예이다.

    SELECT TRUNC(TO_DATE('01 Jan 2018 08:00:00','DD-MON-YYYY HH24:MI:SS')) FROM DUAL
    

    산출: 2018년 1월 1일

  4. ==============================

    4.시험

    시험

    SELECT to_char(p1.PA_VALUE,'DD/MM/YYYY') as StartDate,
           to_char(p2.PA_VALUE,'DD/MM/YYYY') as EndDate
       ...
    
  5. ==============================

    5.DATE 데이터 타입과의 열은 다음과 같은 값을 갖는 경우 : -

    DATE 데이터 타입과의 열은 다음과 같은 값을 갖는 경우 : -

    열에서 값 : 10 11 월 2005 6시 31분 0초

    DD / MM / YYYY 또는 DD-MON-YYYY - 그럼, 당신은 선택 쿼리에서 사용 TRUNC 함수는 같은 단지 날짜에 날짜 - 시간 값을 변환 할 수 있습니다

    표 1에서 TRUNC (column_1)을 선택;

    결과 : 10 11 월 2005

    당신은 위의 결과를 볼 수 있습니다 - NLS_DATE_FORMAT 아래 등 설정되어 있는지 제공 : -

    알터 세션 NLS_DATE_FORMAT = 'DD-MON-YYYY HH24 : MI : SS';

  6. from https://stackoverflow.com/questions/13135552/oracle-sql-how-to-remove-time-from-date by cc-by-sa and MIT license