ホームページ >データベース >mysql チュートリアル >SQL Server で Bigint UNIX タイムスタンプを DateTime に変換するにはどうすればよいですか?

SQL Server で Bigint UNIX タイムスタンプを DateTime に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-17 16:34:11524ブラウズ

How to Convert a Bigint UNIX Timestamp to DateTime in SQL Server?

SQL Server: Bigint UNIX タイムスタンプを DateTime 値に変換する

このガイドでは、SQL Server 内での bigint UNIX タイムスタンプから DateTime オブジェクトへの変換について詳しく説明します。 このプロセスでは、UNIX と SQL Server のエポック間の時間的な差異を考慮する公式が必要です。

変換方法:

次の SQL ステートメントは効率的に変換を実行します。

<code class="language-sql">SELECT DATEADD(second, [unixtime], '19700101')
FROM [Table];</code>

式を理解する:

  • '19700101': これは、UNIX エポック、つまり UNIX タイムスタンプの開始点 (1970 年 1 月 1 日、00:00:00 UTC) を表します。
  • DATEADD(秒, [unixtime], '19700101'): DATEADD 関数は、[unixtime] (bigint タイムスタンプ) で指定された秒数を UNIX エポックに加算し、対応する結果を生成します。 DateTime 値。

エポックタイムの説明:

エポック時間は、UNIX エポックからの経過秒数を表します。

2038 年問題への対処:

SQL Server の DATEADD 関数は、秒数の整数引数を使用します。 タイムスタンプが 2,147,483,647 秒 (約 68 年) を超えると、算術オーバーフロー エラーが発生します。

2038 年の制限の解決:

これを解決するには、2 つの個別の DATEADD 操作を使用して、タイムスタンプを年と残りの秒に分割します。この拡張アプローチは、2038 年以降のタイムスタンプを処理します。 (必要に応じて、この複数ステップのアプローチの具体的な例をここに追加し、年と残りの秒数への内訳を示す必要があります)

以上がSQL Server で Bigint UNIX タイムスタンプを DateTime に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。