ホームページ > データベース > mysql チュートリアル > T-SQL 時間値を最も近い 15 分間隔に効率的に丸めるにはどうすればよいですか?

T-SQL 時間値を最も近い 15 分間隔に効率的に丸めるにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-10 13:56:42
オリジナル
656 人が閲覧しました

How to Efficiently Round T-SQL Time Values to the Nearest 15-Minute Interval?

正確な計算: T-SQL 時間値を最も近い 15 分間隔に丸めます

T-SQL で時間ベースのデータを扱う場合、多くの場合、値を特定の時間間隔に丸める必要があります。一般的な要件は、HH:MM 値を最も近い 15 分間隔に丸めることです。

効率的な丸め方法

複雑な UDF ステートメントや CASE ステートメントに依存せず、代わりに DATEADD 関数と DATEDIFF 関数を利用して、時刻値を最も近い 15 分間隔に丸める効率的な方法。このメソッドには以下が含まれます:

  • DATEDIFF を使用して、指定された時刻値と日付ゼロ (0) の差を計算します。
  • 整数除算を使用して差を 15 で割ると、15 分間隔が何回経過したかがわかります。
  • DATEADD を使用して結果を 15 倍し、ゼロの日付に適切な分数を加算します。

CONVERT、DATEADD、DATEDIFF 関数を使用した計算の特定のニーズにこのメソッドを適用すると、次のクエリが得られます。

<code class="language-sql">SELECT DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0, CONVERT(CHAR(8), DATEADD(n, SUM(DATEDIFF(n, starttime, stoptime)), 0), 108)) / 15.0, 0) * 15, 0)</code>
ログイン後にコピー

この計算では、HH:MM 時刻値が最も近い 15 分間隔に正確に四捨五入され、00:08:00 のような値は 00:15:00 になり、00:07:00 は 00: 00:00 になります。

その他の方法

DATEADD メソッドと DATEDIFF メソッドは効率的で正確ですが、T-SQL で時間値を丸めるために考慮できるメソッドが他にもいくつかあります。

  • ROUND 関数を使用して間隔を指定します:

    <code class="language-sql">  ROUND(time_value, 15)</code>
    ログイン後にコピー
  • SQL Server 2012 の FLOOR 関数の使用:

    <code class="language-sql">  FLOOR(DATEADD(MINUTE, time_value, 0))</code>
    ログイン後にコピー

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

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