T-SQL: 最も近い 15 分に四捨五入した正確な時間
時間値を最も近い 15 分単位に効率的に丸めることは、データベースの一般的なタスクです。この記事では、ユーザー定義関数や CASE ステートメントの複雑さを回避する、組み込みの T-SQL 関数を使用した合理化されたアプローチを示します。
目的は、時間の値を最も近い 15 分単位に四捨五入することです。 たとえば、「00:08:00」は「00:15:00」に切り上げられ、「00:07:00」は「00:00:00」に切り捨てられます。
非常に効率的な方法には、DATETADD
関数と DATEDIFF
関数を組み合わせることが含まれます。この式は、固定開始点 (「2000-01-01」など) からの分単位の差を利用して、最も近い 15 分間隔を計算します。 これにより、非常に長い日付範囲で発生する可能性のある DATEDIFF
整数オーバーフローの問題が回避されます。
式は次のように機能します:
DATEDIFF(minute, '2000-01-01', YourTimeValue)
: 固定日付と時間値の間の合計分を計算します。
/ 15
: 合計分を 15 で割って、15 分間隔の数を決定します。
* 15
: 結果に 15 を乗算して、最も近い 15 分の倍数を取得します。
DATETADD(minute, ..., '2000-01-01')
: 計算された分を固定日付に加算して、丸められた時間値を生成します。
したがって、最も近い 15 分に四捨五入する完全な式は次のとおりです。
<code class="language-sql">DATETADD(minute, (DATEDIFF(minute, '2000-01-01', YourTimeValue) / 15) * 15, '2000-01-01')</code>
YourTimeValue
を実際の時間列または変数に置き換えます。
この手法は他の丸め間隔にも適用できます。 たとえば、最も近い 30 秒に四捨五入するには、式内の second
を minute
に、30
を 15
に置き換えるだけです。 重要なのは、オーバーフロー エラーを防ぐために固定開始日を使用することです。 このアプローチは、T-SQL 内で正確な時間を丸めるための簡潔で効率的なソリューションを提供します。
以上がT-SQL で時間値を最も近い 15 分間隔に効率的に丸めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。