숫자를 시간으로 변환 후 연산 하는 방법 질문 드립니다. 0 4 771

by 창곰 [MySQL] MySqL 시간연산 변환 [2019.02.12 10:03:53]


구루비DB.PNG (5,713Bytes)
구루비DB1.PNG (26,901Bytes)

안녕하세요?

 

mysql에서 ReservationDate(DATE), ReservationTime(int), UseTime(int)를 더하여 EndDate를 구하려고 하고 있습니다.

제가 작성한 아래 쿼리에서는 EndDate 결과값이 2019-02-14 00:00:08 이렇게 나옵니다.ㅜㅜ

UPDATE codesquare.ReservationInfo SET EndDate=ADDTIME(ReservationDate, ADDTIME(usetime,reservationtime)) WHERE no=15;

제가 원하는 결과값은..  ReservationTime과 UseTime을 시간으로 변환하여 더한 2019-02-14 08:00:00 입니다.

int 타입을 hour로 바꿔야 할 것 같은데 어떻게 할지 몰라 이렇게 질문 올립니다. 추가 정보가 필요하다면 댓글 부탁드립니다!!

글 읽어 주셔서 감사합니다.!

by 신이만든지기 [2019.02.12 10:19:21]
-- 원하시는 것
UPDATE CODESQUARE.RESERVATIONINFO
   SET ENDDATE   = DATE_ADD(RESERVATIONDATE, INTERVAL (RESERVATIONTIME + USETIME) HOUR)
 WHERE NO = 15;

-- 이렇게 해야 실제 사용종료 시간이 맞지 않나 싶네요.
UPDATE CODESQUARE.RESERVATIONINFO
   SET ENDDATE   = DATE_ADD(RESERVATIONDATE, INTERVAL USETIME HOUR)
 WHERE NO = 15;

mysql 시간계산 함수 참고해서 만들어봤습니다.

테스트는 못해봤어요.


by 창곰 [2019.02.12 10:37:43]

2개 결과 모두 실제 사용종료 시간이 제대로 출력되네요ㅎㅎ

빠른 답변 감사드립니다.!!


by 우리집아찌 [2019.02.12 10:23:59]
WITH T AS (
SELECT CAST('2019-02-14' AS DATE ) AS RESERVATION_DATE
     , 6 USE_TIME
     , 2 RESERVATION_TIME

)
SELECT DATE_ADD(RESERVATION_DATE, INTERVAL USE_TIME + RESERVATION_TIME HOUR) 
  FROM T

 


by 창곰 [2019.02.12 10:38:42]

빠른 답변 정말 감사드립니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입