ホームページ >データベース >mysql チュートリアル >SQL Server で時間値を効率的に比較するにはどうすればよいですか?

SQL Server で時間値を効率的に比較するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 08:27:50858ブラウズ

How to Efficiently Compare Time Values in SQL Server?

SQL Server での時間の比較

SQL クエリで時間値を比較する場合、日付から時間コンポーネントを分離することが重要です。 Convert(datetime, ...) を文字列表現に使用して比較するというアプローチは、パフォーマンスが遅いため推奨されません。

より効率的な方法は、SQL Server の組み込みの浮動小数点表現を利用することです。日付。整数部分は日付を表し、小数部分は時間を表します。

declare @first datetime
set @first = '2009-04-30 19:47:16.123'
declare @second datetime
set @second = '2009-04-10 19:47:16.123'

select (cast(@first as float) - floor(cast(@first as float))) -
       (cast(@second as float) - floor(cast(@second as float)))
       as Difference

この方法では、日付の整数部分が減算され、小数 (時間) 部分のみが残ります。結果の Difference は時間差を表します。

たとえば、次のメソッドを使用して SQL Server で '08:00:00' と '07:30:00' を比較します。

declare @first datetime
set @first = '08:00:00.000'
declare @second datetime
set @second = '07:30:00.000'

select (cast(@first as float) - floor(cast(@first as float))) -
       (cast(@second as float) - floor(cast(@second as float)))
       as Difference

Result :

Difference
------------
0.5

これにより、「08:00:00」が以下より大きいことが確認されます。 「07:30:00」まで 30 分

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

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