2013-04-15 15 views
5

1348560343598のようなUNIXのタイムスタンプの値をH2 Timestampに変換するにはどうすればよいですか?unixタイムスタンプをH2タイムスタンプに変換する

私のテーブルの1つにBIGINT(19)カラムにこれらのunixタイムスタンプが入っていて、それをタイプTIMESTAMPのカラムに変換する必要があります。

答えて

7

[OK]を、次の式を使用して動作します:

select DATEADD('SECOND', 1348560343, DATE '1970-01-01') 

ちょうど'MILLISECOND'が動作しない、あなたがNumeric value out of rangeを取得します使用して1000でタイムスタンプを分割することを忘れないでください。

+2

ミリ秒は機能しません:はい、私は同じ問題に遭遇しました。実際には、内部で使用される 'Calendar.add(int field、int amount)'の制限です。 H2は、タイムゾーンの問題のためにほとんどの日付/時刻機能で 'java.util.Calendar'を使用しませんが、この場合でもまだ使用されています。 –

+0

これは実際にはJVM時間にカバレッジします(したがって、データベースにタイムスタンプを格納するためにはより意味のあるUTCにすることはできません)。 – marios

関連する問題