pgadmin에서 제공하는 함수들이 많다.
// 현재 날짜
SELECT NOW()
SELECT CURRENT_DATE
// GENERATE_SERIES 함수
GENERATE_SERIES 함수는 PGADMIN9.1버전 부터 사용 가능하며
java로 치면 for문과 매우 유사한 함수이다. 아니면 파이썬 for문이였나 암튼
for문이 (초기값,조건식,증감식) 이라면
GENERATE_SERIES (초기값 , 목표값,증감값) 느낌이다.
엥 근데 이게 날짜랑 무슨 상관이냐구요?
이 함수는 편리한게 날짜데이터도 계산을 해주더라고요
::date 부분은 text형식을 날짜로 변환시켜 주는 것이고
1 HOURS를 쓰면 1시간씩 증가가 된다.
어떤 느낌인지 감이 올 것이다.
// extract 함수
extract함수는 요일을 구할때 쓴다
DOW (일요일 0 ~ 토요일 6)
ISODOW (월요일 1 ~ 일요일 7)
//두 날짜간의 차
사실 위에 날짜 함수 설명은 두 날짜간의 차이를 하기 위한 빌드업이다.
이렇게 두 개의 데이터에서 차이는 간단하게 알 수 있지만
납기단축, 수주출하리드타임 처럼 산출식이 주말은 포함하지 않는다면?
즉 납기일자 - 지시일자 = 납기일 (다만 주말은 포함하지 않음) 이런 산출식이 있을때
물론 이 방법은 단건 일때 쿼리이다.
그러면 납기일자 - 지시일자를 해서 납기일을 구할 때 여러 데이터 건을 구해줘야 한다면?
방법은 더 있을 수 있겠지만 달력 테이블을 하나 만들고
데이터 값을 미리 넣어준다. 주말은 WORK_YN 컬럼에 N으로 들어가고
그 이후 달력테이블을 조인시켜 납기일자 - 지시일자 해서 나온 값에 휴일 수 만큼 -1씩 해주면 된다.
아무튼 오늘은 이걸로 마치고 야식이나 먹어야겠다.
'SQL' 카테고리의 다른 글
[postgresql] with절로 insert,update,delete 를 활용 (0) | 2023.05.16 |
---|---|
[spring,postgresql] bit타입의 컬럼은 spring vo에 어떻게 설정해줘야하는가? (0) | 2023.04.13 |
pgadmin) ARRAY_POSITION 함수 , 이렇게도 ORDER BY가 된다? (0) | 2023.01.27 |
pgadmin 쿼리 성능 분석으로는 쿼리 실행 속도를 측정할 수가 없다. (0) | 2023.01.13 |