SQL Server: UNIX タイムスタンプを DateTime に変換する
UNIX タイムスタンプは bigint
値として保存され、Unix エポック (1970 年 1 月 1 日、00:00:00 UTC) からの経過秒数を表します。 これらを SQL Server の DATETIME
形式に変換すると、データベース管理が簡素化されます。
簡単な方法では、DATEADD
:
<code class="language-sql">SELECT DATEADD(second, [unixtime], '19700101') FROM [Table];</code>
これにより、(unixtime
列の) [unixtime]
がエポック日付に追加され、対応する DATETIME
が生成されます。
時代を理解する
'19700101' は、UNIX タイムスタンプ システムの原点であるエポックを表します。この日付にタイムスタンプを追加すると、数値のタイムスタンプが人間が判読できる日付と時刻に効果的に変換されます。
2038 年問題への対処
DATEADD
の整数制限 (最大 2,147,483,647 秒) により、この値を超えるタイムスタンプには課題が生じます。 2038 年を超える日付を処理するには、より堅牢なアプローチが必要です。これには、タイムスタンプを年と残りの秒のコンポーネントに分割して、個別の DATEADD
操作を行う必要がある可能性があります。 これにより、算術オーバーフロー エラーが回避されます。
以上がSQL Server で UNIX タイムスタンプを DateTime に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。