이 오히려 초로 변환 부호있는 정수로 저장합니다. 문자열/varchar에 직접 수치 연산을 수행 할 수는 없지만이를 사용 가능한 형식으로 다시 마사지하는 비용이 많이 든다. 그런 다음 바로 그 형식으로 직접 저장하지 않는 이유는 무엇입니까? 여기
public static int toSeconds(String time) throws ParseException {
SimpleDateFormat positiveTime = new SimpleDateFormat("'['hh:mm:ss']'");
SimpleDateFormat negativeTime = new SimpleDateFormat("'[-'hh:mm:ss']'");
if (time.startsWith("[-")) {
return -1 * (int) negativeTime.parse(time).getTime()/1000;
} else {
return (int) positiveTime.parse(time).getTime()/1000;
}
}
당신이 DB에 저장 마침내 그것을 사용하는 방법은 다음과 같습니다 : 여기
초에 CSV 필드를 변환하는 방법을 킥오프 예입니다
String time1 = "[00:00:30]";
String time2 = "[- 00:10:20]";
int time1InSeconds = toSeconds(time1);
int time2InSeconds = toSeconds(time2);
// ...
preparedStatement = connection.prepareStatement("INSERT INTO tbl (col1, col2) VALUES (?, ?)");
preparedStatement.setInt(1, time1InSeconds);
preparedStatement.setInt(2, time2InSeconds);
는 30의 시간을 선택하려면 몇 초만 기다려주세요.
SELECT col1, col2 FROM tbl WHERE col1 > 30
이미 시도했지만 작동하지 않았습니다. – daria
정확히 무슨 일을하셨습니까? 와이? – Mchl
나는 이미 '['를 생략하고 데이터 유형을 시간으로 설정했지만 작동하지 않습니다. 나는 시간 값이 0-23으로 제한되지 않는다는 것을 말하는 것을 잊었다.나는 그것이 일하는 7 일을 나타내는 56:00:00 값을 가질 수 있습니다. – daria