한정자 구문이 없는 간격 리터럴의 예
참고
다음 예에서는 YEAR TO MONTH
또는 DAY TO SECOND
한정자 없이 간격 리터럴을 사용하는 방법을 보여줍니다. 한정자와 함께 권장 간격 리터럴을 사용하는 방법에 대한 자세한 내용은 간격 데이터 유형 및 리터럴 섹션을 참조하세요.
간격 리티럴은 12 hours
또는 6 months
같이 일정한 기간을 구분할 때 사용됩니다. 또한 날짜/시간 표현식이 포함된 조건이나 계산에서도 간격 리터럴을 사용할 수 있습니다.
간격 리터럴은 INTERVAL 키워드와 숫자 기간, 그리고 지원되는 날짜 부분으로 표현됩니다. 예를 들면 INTERVAL '7
days'
또는 INTERVAL '59 minutes'
와 같습니다. 더욱 정확한 간격을 표현하기 위해 여러 수량과 단위를 연결할 수도 있습니다(예: INTERVAL '7 days, 3 hours, 59 minutes'
). 각 단위의 약어와 복수 표현도 지원됩니다. 예를 들어 5 s
, 5
second
및 5 seconds
모두 동일한 간격입니다.
날짜 부분을 지정하지 않을 경우 간격 값은 초를 의미합니다. 기간 값은 소수로 지정할 수도 있습니다(예: 0.5 days
).
다음은 모두 간격 값을 다르게 하여 계산하는 예들입니다.
다음은 지정된 날짜에 1초를 더합니다.
select caldate + interval '1 second' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 00:00:01 (1 row)
다음은 지정된 날짜에 1분을 더합니다.
select caldate + interval '1 minute' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 00:01:00 (1 row)
다음은 지정한 날짜에 3시간 35분을 더합니다.
select caldate + interval '3 hours, 35 minutes' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 03:35:00 (1 row)
다음은 지정된 날짜에 52주를 더합니다.
select caldate + interval '52 weeks' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2009-12-30 00:00:00 (1 row)
다음은 지정한 날짜에 1주, 1시간, 1분, 1초를 더합니다.
select caldate + interval '1w, 1h, 1m, 1s' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2009-01-07 01:01:01 (1 row)
다음은 지정한 날짜에 12시간(반일)을 더합니다.
select caldate + interval '0.5 days' as dateplus from date where caldate='12-31-2008'; dateplus --------------------- 2008-12-31 12:00:00 (1 row)
다음은 2023년 2월 15일에서 4개월을 뺀 값이며 결과는 2022년 10월 15일입니다.
select date '2023-02-15' - interval '4 months'; ?column? --------------------- 2022-10-15 00:00:00
다음은 2023년 3월 31일에서 4개월을 뺀 값이며 결과는 2022년 11월 30일입니다. 계산에서는 한 달의 일수를 고려합니다.
select date '2023-03-31' - interval '4 months'; ?column? --------------------- 2022-11-30 00:00:00