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
운영게시판
최근게시물
Oracle Q&A 39978 게시물 읽기
No. 39978
야간근무시간 구하기...도와주세요.
작성자
스님
작성일
2013-01-17 22:51
조회수
5,666

야간근무는 22:00 ~ 06:00 사이에 발생하면 야간근무로 처리합니다.

실제 출퇴근은 04:00 ~ 23:00 로 할경우 야간시간을 앞뒤로 처리해야되는데.어찌할지..

고수님들 도와주세요.

WITH WT_A AS

(

SELECT '0400' AS START_TIME, '2300' AS END_TIME FROM DUAL UNION ALL

SELECT '0800' AS START_TIME, '2300' AS END_TIME FROM DUAL UNION ALL

SELECT '0400' AS START_TIME, '1200' AS END_TIME FROM DUAL

)

SELECT ....

FROM    WT_A

 

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

WITH code AS
(
SELECT '야간' gb, '0000' stm, '0600' etm FROM dual
UNION ALL SELECT '주간', '0600', '2200' FROM dual
UNION ALL SELECT '야간', '2200', '2400' FROM dual
)
, wt_a AS
(
SELECT 1 pk, '0400' start_time, '2300' end_time FROM dual
UNION ALL SELECT 2, '0800', '2300' FROM dual
UNION ALL SELECT 3, '0400', '1200' FROM dual
)
SELECT a.pk
     , a.start_time
     , a.end_time
     , c.gb
     , GREATEST(c.stm, a.start_time) stm
     , LEAST(c.etm, a.end_time) etm
  FROM wt_a a
     , code c
 WHERE c.stm < a.end_time
   AND c.etm > a.start_time
 ORDER BY pk, stm
;

마농(manon94)님이 2013-01-18 12:34에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39981Update문 문의드립니다. [2]
새하정
2013-01-22
4765
39980시세이력과 현시세의 차이를 나타내려고 합니다. [2]
초보
2013-01-18
5521
39979조건별 count [1]
사랑
2013-01-17
4732
39978야간근무시간 구하기...도와주세요. [1]
스님
2013-01-17
5666
39977INSTR 함수를 이용한 컬럼 데이터 재구성 [2]
rapid
2013-01-17
5226
39976가로 데이터를 세로로 출력 [1]
질문드립니다
2013-01-17
7094
39975CPU (Critical Patch Update) 해보신분~
임서희
2013-01-17
5058
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다