본문 바로가기

프로그래밍/SQL

SQL - interval, isoyear, coalesce() 등

postgresql에서 :: 의 의미는 데이터 타입 변환 Cast to Convert
interval타입
- 연/월/일 등의 단위와 결합해 날짜와 시간 연산이 가능한 타입

:: interval  

interval타입으로 변환

select now(), now()::date - '1 day' ::interval;

Name    |Value              |
--------+-------------------+
now     |2021-07-23 15:34:09|
?column?|2021-07-22 00:00:00|

select now();--현재시간까지 출력
2021-07-23 15:34:09
select now()::date ;
2021-07-23

now()를 날짜로 변환 - 하루를 interval(날짜)로 변환

= 현재날짜- 하루

23일-1일= 22일

 

isoyear

국제표준시와 그레고리안 달력 간의 차이 때문에 다름

select extract('isoyear' from date '2006-01-01'); 
Name     |Value |
---------+------+
date_part|2005.0|

date_part(), extract ()

사용하는 틀 다름. 결과 같음

select date_part('month', timestamp '2020-07-30 20:38:40');
select extract('month' from timestamp '2020-07-30 20:38:40');
Name     |Value|
---------+-----+
date_part|7.0  |

COALESCE() 함수는 주어진 인수에서 첫 번째가 NULL 이 아닌 값을 반환합니다.

SELECT coalesce(MAX(salary), 9999) SAL;

MAX(salary)가 0이면 9999반환

 

+ 보너스

테이블명을 탭을 사용해서 엔터를 칠 때 이렇게 임의로 정해진 별칭이 같이 출력된다. 

from A.tab1 t  
from A.tb_emp te 
from A.tb_accnt ta 

'프로그래밍 > SQL' 카테고리의 다른 글

TO_CHAR, TO_NUMBER에서 D,G,S의 의미  (0) 2021.07.23