ホームページ > データベース > mysql チュートリアル > SQL Server 2008 で大きな JavaScript 日付を変換するときに DATEADD オーバーフロー エラーを回避するにはどうすればよいですか?

SQL Server 2008 で大きな JavaScript 日付を変換するときに DATEADD オーバーフロー エラーを回避するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-17 22:40:11
オリジナル
349 人が閲覧しました

How to Avoid DATEADD Overflow Errors When Converting Large JavaScript Dates in SQL Server 2008?

大きな整数による DATEADD オーバーフロー

SQL Server 2008 ユーザーは、次を使用して大きな JavaScript 日付を SQL 日付に変換するときに「算術オーバーフロー エラー」が発生することがあります。 DATEADD 関数。このエラーは、値が整数データ型の最大サイズを超えると発生します。

問題のクエリ:

DATEADD(MILLISECOND, cast(569337307200000 as bigint) % 1000, DATEADD(SECOND, cast(569337307200000 as bigint) / 1000, '19700101'))
ログイン後にコピー

この問題を解決するには、DATEADD をより小さな増分に分割します。より大きな時間単位 (秒、分、または時間) から始めて、残りのミリ秒単位で調整します。複雑なカレンダー計算が必要となるため、週または月の使用は避けてください。

次の例を考えてみましょう:

-- Handle large durations by subtracting minutes and then remaining milliseconds.

DATEADD(ms, -large_duration_ms%60000, DATEADD(minute, -large_duration_ms/60000, GETDATE()))
ログイン後にコピー

この手法により、オーバーフロー エラーを発生させることなく、非常に長い期間の開始時刻を計算できます。

以上がSQL Server 2008 で大きな JavaScript 日付を変換するときに DATEADD オーバーフロー エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート