database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10156 게시물 읽기
No. 10156
Mysql 쿼리문인데 PostgreSQL로 변환하고 싶습니다.
작성자
김씨
작성일
2020-04-21 17:02
조회수
261

아래 쿼리는 mysql에서

두 날짜사이 주말일수를 제외한 일수를 구하는 sql문인데

PostgreSQl에서 적용되게 변환하고 싶습니다.

부탁드립니다.

 

select ABS(DATEDIFF('2020-04-23', '2020-04-26')) + 1 - ABS(DATEDIFF(ADDDATE('2020-04-23', INTERVAL 1 - DAYOFWEEK('2020-04-23') DAY),

ADDDATE('2020-04-26', INTERVAL 1 - DAYOFWEEK('2020-04-26') DAY))) / 7 * 2

- (DAYOFWEEK(IF('2020-04-26' < '2020-04-23', '2020-04-26', '2020-04-23')) = 1)

- (DAYOFWEEK(IF('2020-04-26' > '2020-04-23', '2020-04-26', '2020-04-23')) = 7);

 

이 글에 대한 댓글이 총 1건 있습니다.

이리저리 따라하면서 만들어봤습니다.

참고되시길..

SELECT ABS(DATE '2020-04-04' - DATE '2020-04-26') - 
       ABS((DATE '2020-04-04' - EXTRACT(DOW FROM DATE '2020-04-04')::INT) -
           (DATE '2020-04-26' - EXTRACT(DOW FROM DATE '2020-04-26')::INT))/7*2 -
       CASE WHEN EXTRACT(DOW FROM DATE '2020-04-04') = 0 THEN 1 ELSE 0 END +
       CASE WHEN EXTRACT(DOW FROM DATE '2020-04-26') = 0 THEN 1 ELSE 0 END
 
 ?column?
----------
       15
 
참고사이트
 
 
좀 더 찾아보니 다른 방법도 있네요.
 
select sum(case when extract (dow from dt) in (1,2,3,4,5) then 1 else 0 end) as thediff
from (
       select generate_series('2020-04-04', '2020-04-26', '1 day'::interval) as dt
     ) t
 
 thediff
---------
      15
 
 
 
 
후자가 깔끔하고 직관적이어서 좋군요. 앞에 쿼리 짜다가 한참 고민했는데..
정상규(pajama)님이 2020-04-22 18:05에 작성한 댓글입니다.
이 댓글은 2020-04-22 22:08에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
10158pg_archivecleanup 은 어떻게 수행하세요? [1]
.test
2020-05-13
103
10157Postgresql의 프로시저에서 cursor 리턴에 대한 mybatis쪽의 정의는 어떻게 되나요? [1]
권오준
2020-05-06
142
10156Mysql 쿼리문인데 PostgreSQL로 변환하고 싶습니다. [1]
김씨
2020-04-21
261
10154EDB PAS 파티션테이블 트리거 생성이 가능한가요? [1]
story1472
2020-04-08
259
10153윈도우에서 Postgresql 9.6 에서 10버전으로 업그레이드 하는 방법이 있나요? [1]
CISSP
2020-04-07
285
10152postgresql.conf 설정변경 성능 문의 [1]
김범수
2020-04-07
258
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.076초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다