ホームページ > データベース > mysql チュートリアル > T-SQL で HH:MM 時間値を最も近い 15 分に四捨五入するにはどうすればよいですか?

T-SQL で HH:MM 時間値を最も近い 15 分に四捨五入するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-10 14:09:41
オリジナル
724 人が閲覧しました

How to Round HH:MM Time Values to the Nearest 15 Minutes in T-SQL?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート