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

SQL Server で DateTime 値から日付コンポーネントを効率的に抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-13 09:07:43215ブラウズ

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

SQL Server の Datetime 値の日付コンポーネントを取得します

Datetime 値から日付コンポーネントを抽出することは、SQL Server の一般的なタスクです。効率的な方法は、DATEADD 関数を使用することです。

DATEADD 関数を使用します:

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CRETS), 0) FROM tblMeasureLogv2</code>

ここで、CRETS は日時列です。 DATEADD を使用して、datetime 値に追加する日付の数 (この場合は 0) を指定します。これにより、値の時、分、秒のコンポーネントが午前 0 時にリセットされ、日付部分が得られます。

他の方法との比較:

DATEADD メソッドは、Matt が提案したフロア - フロート変換メソッドよりもわずかに高速に実行されます。 STRINGCONVERT や純粋な SELECT ステートメントなど、他の一般的に使用されるメソッドは、比較すると大幅に時間がかかります。

パフォーマンス評価:

1 億 3,000 万行を超える非常に大きなテーブルでのテストでは、DATEADD メソッドは次のパフォーマンスを示しました。

<code>SQL Server 执行时间:CPU时间 = 531 毫秒,经过时间 = 33440 毫秒</code>

これに対し、フロアキャスト方式の CPU 時間は 625 ミリ秒、文字列変換方式の CPU 時間は 1953 ミリ秒です。これは、この特定のテスト環境では DATEADD メソッドの方が効率的であることを示しています。

結論:

SQL Server では、DATEADD 関数を使用すると、日時値を日付コンポーネントに切り捨てる効率的な方法が提供されます。そのシンプルさと速度により、さまざまなデータ処理シナリオに適した選択肢となります。

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

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