2012-08-25 8 views
2

시간 값을 실제로 연관된 특정 날짜를 알지 못해도 mysql 데이터베이스에 저장할 수 있기를 원합니다. java.sql.time을 사용하여 데이터를 저장하고 있습니다.알 수없는 시간을 설정하십시오.

long timeInMillis = 43200000; //This is 12 hours in milliseconds.  
Time time = new Time(timeInMillis); 

무엇이든지간에 나는 이것이 07:00:00의 시간을 주며 12:00:00이어야합니다. 시간 변수를 설정할 때 특정 날짜 이후의 시간 양을 기반으로하기 때문에 이것이라고 가정합니다. 미리 정의 된 날짜를 실제로 사용하지 않고 시간 변수를 설정하는 방법은 무엇입니까?

데이터베이스에 요일과 시간 범위를 저장하려는 이유입니다. 12 시부 터 1시 사이의 일요일은 12:00:00에서 13:00:00 사이에 0이됩니다. 나는 실제 날짜 값을 데이터베이스와 비교하여 월 또는 연도에 상관없이 날짜 요일에 따라 기간이 속하는지 확인하려고합니다. 가능한 평일과 시간마다 데이터베이스에 전체 날짜를 저장하면 수천 개의 불필요한 항목이 생깁니다.

+0

MySQL에 날짜를 저장 하시겠습니까? -> http://stackoverflow.com/questions/2400955/how-to-store-java-date-to-mysql-datetime – AnujKu

+1

이것은 시간대 문제처럼 보입니다. MySQL TIME 타입도 사용할 수 있습니다. –

+0

java.sql.Time-class에는 다음과 같은 생성자도 있습니다.'public Time (int hour, int minute, int second)'. – jens108

답변

0

이것은 시간대 문제 일 수 있지만 시간 값을 데이터베이스에 문자열로 전달하여 문제를 해결했습니다. timezone 속성이 중요하지 않으면 어쨌든이 인스턴스에서 실제 문자열을 사용하는 것이 가장 좋습니다.

String startTime = "12:00:00"; 
String endTime = 01:00:00; 

시간대가 중요한 경우

은 당신이 당신의 날짜 객체를 preparsing하지 않는 한 현재 세션에 대한 귀하의 MySQL은 성명에서 직접 시간대를 설정하는 것 사용하는 것이 가장 좋은 방법을 가정합니다. 자세한 내용은 여기에서 확인할 수 있습니다. How do I set the time zone of MySQL?

EDIT : 실제로는 시간대 문제가 아니지만 (다른 경우도있을 수 있으므로 시간대 조정이 불투명하지는 않습니다). 밀리 초 단위로 시간을 잘못 계산했습니다.

1

어떤 이유에서이 시간은 07:00:00이고 12:00:00이어야합니다. 나는 이것이 특정 날짜를 지나서 시간의 양에 근거하여 시간 변수를 설정할 때이기 때문에 가정하고있다.

TimeZone 차이로 인해 발생할 수있다. 값을 저장하고 검색하는 동안 시간대 정보를 확인하십시오.

관련 문제