천발무금
1k
2017-11-20 22:59:45 작성 2017-11-21 16:54:27 수정됨
3
1203

자바에서 초단위 시간을 잰 후 DB에 저장하기!


안녕하세요. 초보개발자입니다!


자바에서 초단위 시간을 잰 후 DB에 저장하고 싶은데 오류가 나서 ㅠㅠ 고수님들께 문의드립니다!


[현상황]

자바에서 어떤 파일의 데이터를 읽은 다음에 그 데이터를 계산해서 특정 조건일 때만 "초" 시간을 잽니다.


예를들어 사람이 걸어다니는 시간을 체크하기 위해,  사람이 가만히 있거나, 걸어다니는 데이터는 파일로 저장이 되다고 가정해보면요.

해당 파일을 읽어서  사람이 가만히 있을 때는 "초"가 증가하지 않고 사람이 걸어다니면 "초"가 증가합니다.


저는 일단 int형 변수를 i를 하나 선언해서, 사람이 걸어다닐 때 마다 i++ 하게 해놓고, 사람이 걸어다니지 않으면 i 값에 변화를 주지 않았습니다. 그 다음 해당 값을 String 타입으로 형변환하여 저장했습니다.


DB는 mariaDB 이구요. DB에 저장은 00:00:00 형식과 같은 TIME 타입으로 하고싶습니다.



[오류원인]

위 상황에서 어떤 사람이 총 움직인 시간이 18607초가 나왔습니다.

해당 값을 DB에 TIME 데이터 타입으로 설정된 칼럼에 넣고싶습니다.

오류는  Cause: java.sql.SQLDataException: Incorrect time value 라고 나오구요..


JAVA.SQL.TIME 등 찾아봤는데 이해가 안되서요..ㅠ.ㅠ

0
  • 답변 3

  • java1987
    589
    2017-11-20 23:45:13

    혹시 인설트 쿼리문 좀 볼 수 있나요?

  • 구텐모겐
    200
    2017-11-21 08:08:25

    Time 타입은 시간을 저장 하는데 사용합니다. 

    예를 들어 2017년 11월 20일 몇 일 몇 초를 나타내며 이 타입에는 몇 초가 소비 되었는지는 알 수 없습니다.

    숫자를 저장 하시기 원한다면 숫자 형 데이터 타입을 사용해서 저장 하셔야 합니다.

  • 천발무금
    1k
    2017-11-21 09:04:44 작성 2017-11-21 09:05:15 수정됨

    java1987

    답변 감사드립니다 ㅎㅎ

    사수분께서 정수형으로 저장하라고 하셔서, 그냥 정수형으로 저장할 것 같습니다.

    insert 쿼리는 mybatis에서 파라미터 타입을 객체로 주고, #{} 으로 코딩했었습니다.



    구텐모겐
    답변 감사드립니다 ㅎㅎ

    MariaDB(Mysql 기반) 에서 DATETIME이 말씀주신 2017년 11월 20일 몇 일 몇 초 인 것 같고

    TIME이라고 따로 있어서 시, 분, 초만 나타내는 것 같습니다.

    그래서 가능할 줄 알았는데, (아마 가능하리라 생각도하지만, 찾아서 적용하는데 시간이 오래 걸릴 것 같네요 ㅠㅠ) 결국은 구텐모겐님 말씀처럼 저희 사수분께서도 숫자 형 데이터 타입을 사용해서 저장하라고 말씀주셔서 그렇게 진행하기로 했습니다.
    답변주셔서 진심으로 감사드립니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.