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 サイトの他の関連記事を参照してください。