有馬総一郎のブログ

(彼氏の事情)

SQL文で時間をxx分単位に丸める

タイトルまんま、21:58, 09:01, 13:23とかを21:55, 09:00, 13:20と5分単位で丸めたい、切り捨てたい。

select
  GETDATE()
  , dateadd(mi, datediff(mi, cast(GETDATE() as date), GETDATE()) % 5 * -1, dateadd(mi, datediff(mi, 0, GETDATE()), 0))
  , dateadd(mi, datediff(mi, dateadd(dd, datediff(dd, 0, GETDATE()), 0), GETDATE()) % 5 * -1, dateadd(mi, datediff(mi, 0, GETDATE()), 0))
  , dateadd(mi, datediff(mi, datediff(dd, 0, GETDATE()), GETDATE()) % 5 * -1, dateadd(mi, datediff(mi, 0, GETDATE()), 0))

秒を切り捨てた現在時刻から、今日の経過分数を5で割った余りを引く。上の三つどれも同じ。

参考サイト

Comments