안녕하세요..전에 특정 요일까지 남은 시간을 초로 알수 있는 방법에 대해 질문을 올렸었습니다. 초짜 해커님과 향지님 덕분에 문제는 잘 해결되었고요.
여기서 추가질문 하나 더 드립니다. 그렇다면 특정 요일에 더해서 특정 시간까지 남은 시간을 알려면 어떤 방식을 써야 하나요?
그러니까 이를테면 지금까지 방식은 목요일까지 남은 시간을 초로 구하고 목요일이 지나면 그 다음주 목요일까지 남은 시간을 다시 표시하는 방식이라면, 이제는 목요일 오후 11시20분(23시 20분)까지 남은 시간을 초로 구하고 해당 요일 해당 시간이 지나면 다음주 목요일 오후 23시 20분까지 남은 시간이 표시가 되는 것이죠.
양지님이나 초짜해커님 방식으로 이리저리 바꿔보고 있는데 아무래도 제가 지식이 짧은지 원하는 시간으로 나오질 않네요ㅠㅠ며칠동안 머리싸매쥐다가 질문드립니다ㅠㅠ
Comment 5
-
향지
2014.06.24 23:09
엇 이시간에도 여기를 오시다니!!
-
ㅎㅎ 심심해서요
-
향지
2014.06.24 23:21
제 카톡은 안보시고 ㅠㅠ
-
향지
2014.06.24 23:08
예전 댓글 적은것과 비슷한데요
예전에도 기준일을 잡아서 했구요
이번에도..... 기준일을 만들어서 주단위로 계산해서 1주를 추가로 더합니다.
혹시나 초단위면
datediff(SECOND, .......... 에다가 끝에 /60을 추가해주시구요
초단위면은 datediff output이 int형식이라서 +60년 정도까지만 계산됩니다.
기준일은 현재시간보다만 작으면 됩니다.
/*
요일을 받아서
일요일이면 2000-01-02 + 시간문자열
월요일이면 2000-01-03 + 시간문자열
.......
이런식으로 기준 요일, 시간을 만들어 줍니다.
그리고 그시간과 현재시간을 계산해서 다음번의 요일과 시간을 구합니다.
-- 일요일: 2000-01-02 + 시간
-- 월요일: 2000-01-03 + 시간
-- 화요일: 2000-01-04 + 시간
-- 수요일: 2000-01-05 + 시간
-- 목요일: 2000-01-06 + 시간
-- 금요일: 2000-01-07 + 시간
-- 토요일: 2000-01-08 + 시간
*/
DECLARE @WANT_STD_DATE DATETIME
DECLARE @TODAY DATETIME
SET @WANT_STD_DATE = '2000-01-04'+' '+'02:20:00'
SET @TODAY = '2014-06-23 02:19:00' -- GETDATE()
SELECT DATEADD(WEEK, DATEDIFF(MINUTE, @WANT_STD_DATE, @TODAY)/60/24/7+1, @WANT_STD_DATE)
똑같은 문제구요.
목요일 0시까지 구한다음 23시간 20분 만큼 더하던지
금요일 0시까지 구한다음 40분 만큼 빼면 되겠네요