T-SQL で HH:MM 値を最も近い 15 分間隔に丸めます
特定の間隔に丸めることは、時間値を扱う場合の一般的なタスクです。この記事では、ユーザー定義関数 (UDF) や case ステートメントに依存せずに、HH:MM 値を最も近い 15 分間隔に丸めるためのエレガントな T-SQL メソッドについて説明します。
解決策:
このテクニックの鍵は、datediff()
関数と dateadd()
関数を使用して、秒を無視して日付コンポーネントを操作することです。入力日時と時間成分 00:00:00 の固定日付との差を計算することで、経過分数を判断できます。
この値を 15 で割ると、15 分間隔の数が得られます。結果は 15 で乗算され、dateadd()
を使用して固定日付に加算され、最も近い 15 分間隔に四捨五入された時刻が得られます。
クエリの例:
次のクエリの例を考えてみましょう:
<code class="language-sql">SELECT dateadd(minute, datediff(minute, '2023-01-01', GETDATE()) / 15 * 15, '2023-01-01') AS RoundedTime</code>
GETDATE()
を希望の日時値に置き換えると、次のように丸められた HH:MM 値が返されます:
<code>| 输入时间 | 舍入时间 | |---|---| | 00:08:00 | 00:15:00 | | 00:07:00 | 00:00:00 | | 01:59:00 | 02:00:00 |</code>
注:
このアプローチにより、入力時間の値に関係なく一貫した丸め動作が保証されます。また、より大きな日付範囲を扱うときに発生する可能性のあるオーバーフロー エラーも回避できます。キャストは必要ありませんが、時刻コンポーネント 00:00:00 を含む適切に固定された日付を計算の基礎として使用する必要があります。
以上がT-SQL で HH:MM 時間値を最も近い 15 分に四捨五入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。