ホームページ > データベース > mysql チュートリアル > SQL Server で DateTime 値から日付部分を効率的に抽出するにはどうすればよいですか?

SQL Server で DateTime 値から日付部分を効率的に抽出するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-13 07:55:42
オリジナル
979 人が閲覧しました

How Can I Efficiently Extract the Date Part from a DateTime Value in SQL Server?

SQL Server の日時値から日付を抽出します

ほとんどの SQL アプリケーションは、日付と時刻のコンポーネントを含むデータを処理します。ただし、場合によっては、日付部分のみを抽出し、時刻情報を破棄する必要があります。これは、SQL Server のさまざまな手法を通じて効果的に実現できます。

最も効率的な方法

いくつかの方法が存在しますが、SQL Server で日時から日付を抽出する最も効率的な方法は、DATEADD() 関数と DATEDIFF() 関数を組み合わせて使用​​することです。この方法には次の手順が含まれます:

  1. DATEDIFF(DAY, 0, ) を使用して、0 から指定された日時までの日数を計算します。このステップは、エポック (1900 年 1 月 1 日) からの毎日のオフセットを効果的に計算します。
  2. DATEADD() を DAY フィールドに適用し、手順 1 の結果を使用して、時刻コンポーネントが 00:00:00 にリセットされた新しい日時を取得します。

例:

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '2008-09-25 12:34:56'), 0)</code>
ログイン後にコピー

CAST(FLOOR(CAST(... AS FLOAT)) AS DATETIME) または CONVERT(DATETIME, CONVERT(VARCHAR(10), ..., 120), 120) を使用した変換などの他のオプションと比較すると、これはこの方法は最も速く、最も効率的な方法であることが証明されています。

ベンチマーク

ミリ秒単位の正確なタイムスタンプを持つ 1 億 3,000 万行を超えるレコードを含むデータセットでのパフォーマンス テストでは、次の結果が示されました:

方法 CPU时间(ms)
纯SELECT 422
Floor-Cast 625
字符串转换 1953
DateAdd 531

パフォーマンスはデータのサイズ、分布、その他の要因によって異なる可能性があることに注意してください。

以上がSQL Server で DateTime 値から日付部分を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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