2

MySQLでは、2つのタイムスタンプ値の差を取得し、結果を時間列に格納しようとしています。ただし、結果が「hhh:mm:ss」形式になる場合があります。Result.getTime()を使用してJavaでその列にアクセスしようとすると、「列xの時間の形式が正しくありません」というエラーがスローされます。

より良いアイデアを得るために、次のクエリの結果を時間列に格納し、Javaでこの値にアクセスしてみてください。

SELECT SEC_TO_TIME(ABS(TIMESTAMPDIFF(SECOND,'2013-01-26 19:03:48','2013-02-15 06:59:36'))) as 'RESULT';

'hhh:mm:ss'形式(エラーなし)の場合でも結果を取得するにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

1

2つの日付の違いを別の日付として表現することはできません。たとえば、31日の差がある場合、それが1か月なのか1か月と1日なのかはわかりません。

このデータを保存するには、独自のオブジェクトを作成する必要があります。

于 2013-02-16T11:14:48.860 に答える
1

クエリを実行し、結果セットに結果が含まれていると仮定します

String hourMinSec=resultset.getString("RESULT");
String[]result=hourMinSec.split(":");
int hour=Integer.parseInt(result[0]);
int min=Integer.parseInt(result[1]);
int second=Integer.parseInt(result[2]);

2つの日付の違いを日付として表現することは無意味だと思います。あなたが時間を作りたいならあなたの質問に答えるためだけにあなたは以下を使うことができます

 Time time =new Time(hour, min, second);      

しかし、私はそれが無意味だと感じています。

于 2013-02-16T11:29:09.473 に答える