ホームページ > データベース > mysql チュートリアル > SQL Server で DATETIME 値から日付を抽出する最も効率的な方法は何ですか?

SQL Server で DATETIME 値から日付を抽出する最も効率的な方法は何ですか?

Susan Sarandon
リリース: 2025-01-13 08:00:43
オリジナル
596 人が閲覧しました

What's the Most Efficient Way to Extract a Date from a DATETIME Value in SQL Server?

SQL Server の日付と時刻から日付を効率的に抽出します

SQL Server で結合された日付と時刻の値から日付を効率的に抽出することは、データ操作タスクにとって重要です。この場合、問題は「2008-09-25 12:34:56」のような日時値から日付を取得する方法です。

次のようなさまざまなアプローチが提案されています。

  • CAST(FLOOR(CAST(CRETS AS FLOAT)) AS DATETIME)

このメソッドは、datetime 値を float に変換し、floor 演算を実行して小数部分を切り捨て、結果を datetime に戻します。この方法は非常に効率的ですが、すべての状況で最速ではないことが観察されています。

  • CONVERT(DATETIME, CONVERT(VARCHAR(10), CRETS, 120) , 120)

このメソッドは、日時値を長さ 10 の文字列に変換し、スタイル 120 が指定されている場合はその文字列を日時値に変換して戻します (日付のみの変換を強制します)。

  • DATEADD(DAY, DATEDIFF(DAY, 0, CRETS), 0)

このメソッドは、datetime 値と午前 0 時の間の日数を計算し、その差を午前 0 時に加算して日付を取得します。

パフォーマンス分析

最も効率的なアプローチを決定するために、ミリ秒単位の正確なタイムスタンプを含む大きなテーブルでパフォーマンス テストを実行しました。次の実行時間が観察されました:

  • 純粋な選択: 33803 ミリ秒
  • フロアキャスト: 33545 ミリ秒
  • 文字列変換: 33843 ミリ秒
  • DateAdd: 33440 ミリ秒

これらの結果に基づくと、特定のテスト ケースでは DateAdd の方がわずかに高速です。パフォーマンスは、データ分散、サーバー構成、ワークロードの特性によって異なる場合があることに注意してください。

したがって、SQL Server から日付と時刻を抽出する最も効率的な方法を選択する場合は、特定のデータ セットとワークロード要件に基づいたパフォーマンス テストを通じてさまざまな方法を評価することをお勧めします。

以上がSQL Server で DATETIME 値から日付を抽出する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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