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
운영게시판
최근게시물
MS-SQL Q&A 5841 게시물 읽기
No. 5841
datediff 함수 질문입니다.
작성자
송은진(whyukbbg)
작성일
2011-02-13 22:47
조회수
6,939

로그인                                                            로그아웃              

===============================================

2010-04-01  07:30:00                      2010-04-01 10:30:00

2010-04-02 10:00:00                       2010-04-02 12:00:00

2010-04-03 23:00:00                       2010-04-04 02:00:00

2010-04-04 14:00:00                       2010-04-04 15:00:00

과 같은 테이블이 있을때 로그아웃-로그인 분을 구하고싶습니다.

아래의 결과가 원하는 결과인데요,.,  1,2일은 잘 나오는데,,,3일 로그인 후 4일 로그아웃을 했을때 시간이 나뉘어서 안나옵니다.ㅠ

날짜               사용 분

4월1일            180

4월2일             120

4월3일              60

4월4일              180

select datepart(dd,date) ,datediff(minute,login,logout) from 테이블이름

제가 한 쿼리이구요,, 수정부탁드립니다. 도와주세요 ㅠ

 

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

아래와 같이 푸시면 됩니다... 

1. 일자가 걸친 데이터의 경우 걸쳐진 일수만큼 데이터를 복제

2. 로그인시각 기준 1일(24시간)단위로 쪼갬

3. 기준일자별로 시간대 집계

 

예제 참조)

 

 

create table #T

(

ID int,

login_date datetime,

logout_date datetime

)

 

insert into #T values (1, '2010-04-01 07:30:00', '2010-04-01 10:30:00')

insert into #T values (2, '2010-04-02 10:00:00', '2010-04-02 12:00:00')

insert into #T values (3, '2010-04-03 23:00:00', '2010-04-04 02:00:00')

insert into #T values (4, '2010-04-04 14:00:00', '2010-04-04 15:00:00')

insert into #T values (5, '2010-04-04 14:00:00', '2010-04-07 16:00:00')

 

select ID,

case when login_date < login_date + No - 1 then 

convert(datetime, convert(nvarchar(8), login_date + No - 1, 112)) 

else 

login_date 

end as Start,

case when convert(datetime, convert(nvarchar(8), login_date, 112)) + No > logout_date then 

logout_date 

else 

convert(datetime, convert(nvarchar(8), login_date + No, 112)) 

end

from #T

inner join COPY_T as B on

No between 1 and datediff(dd, login_date, logout_date) + 1

 

지나가다님이 2011-02-17 14:55에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5845constratint 조회하기 [1]
김상환
2011-02-17
6133
5844조건에 따라 다른 테이블참조하는 SQL문???? [1]
이만실
2011-02-17
8095
5843여러개의 테이블을 한번에 삭제하는 방법
나그네
2011-02-15
6191
5841datediff 함수 질문입니다. [1]
송은진
2011-02-13
6939
5840프로시져관련 문의 입니다.
풍풍
2011-02-10
6104
5839트리거 에러좀 봐주세요 [1]
심규홍
2011-02-09
5806
5838최근 5년치 가져오기
ㅅㅅㅅ
2011-02-01
5660
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다