4

DB2 で 2012-04-12 00:00:00 を UNIX タイムスタンプに変換するにはどうすればよいですか。SQL s で使用できる inbuild 関数はありますか

ありがとうございました。

4

2 に答える 2

3

1970-01-01 Unix timestamp00:00:00 UTC からの秒数 (または何でも) を意味していると思います。

DB2 には、この機能が組み込まれていません (V6R1 以降)。
また、次の問題にも直面しています。

  • DB2 のすべてのタイムスタンプは「現地時間」です。タイムゾーン情報は含まれておらず、すべての書き込みは、ホストではなく、要求側システムが認識CURRENT_TIMESTAMPしている時刻に基づいています。
  • サマータイムは頻繁に変更されます。変換のためにこれを管理するには、オーバーヘッドを追加する必要があります。
  • この関数は、正確な値ではなく推定値TIMESTAMPDIFFを返します。おそらく、十分な差を超えて、年/月の期間生き残ることができますが、日がそれをカットする可能性は低いです.
  • タイムスタンプの計算は不正確です (とりわけ、月の長さは常に 30 日と見なされます...)

最善の策DAYSは、(0001-01-01 からの日数を返す) を使い始めることです。DST が考慮されないため、すべてを UTC で行うことをお勧めします。

于 2012-05-08T16:29:12.330 に答える