sql >> データベース >  >> RDS >> Sqlserver

T-SQL:最も近い15分間隔に丸めます

    私は現在、これにゼロ(0)の日付を持つdateadd/datediffバリアントを使用しています。キャスティングは必要ありません:

    select dateadd(minute, datediff(minute,0,GETDATE()) / 15 * 15, 0)
    

    GETDATE()は、日時が何であれです。

    これは、オーバーフローが原因でdatediffが失敗する前に、少なくとも5500年までの日付で機能します。ただし、2番目の精度を使用しようとすると、上記はすぐに失敗します。

    '2009-01-01'のような別の固定日付、または今日の日付(警告、より醜いSQL)を使用すると、それが修正されます。将来の日付も機能します。 00:00:00の時間部分がある限り、別の日時を基にすることができます。

    例:30秒単位で四捨五入:

    select dateadd(second, round(datediff(second, '2010-01-01', GETDATE()) / 30.0, 0) * 30, '2010-01-01');
    


    1. アクティブなSQLServer接続を確認するにはどうすればよいですか?

    2. EXISTSとINを使用したサブクエリ-MySQL

    3. データベース保守計画を使用してSQLServer統計を更新する

    4. MySQLで2つのタイムスタンプの差を計算する方法