SQL Server の日時値から日付を抽出します
ほとんどの SQL アプリケーションは、日付と時刻のコンポーネントを含むデータを処理します。ただし、場合によっては、日付部分のみを抽出し、時刻情報を破棄する必要があります。これは、SQL Server のさまざまな手法を通じて効果的に実現できます。
最も効率的な方法
いくつかの方法が存在しますが、SQL Server で日時から日付を抽出する最も効率的な方法は、DATEADD() 関数と DATEDIFF() 関数を組み合わせて使用することです。この方法には次の手順が含まれます:
例:
<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 サイトの他の関連記事を参照してください。