sql >> Databáze >  >> RDS >> Sqlserver

T-SQL:Zaokrouhlete na nejbližší 15minutový interval

V současné době k tomu používám variantu dateadd / datediff s nulovým (0) datem. Není vyžadováno odesílání:

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

GETDATE() je jakékoli datum a čas.

To bude fungovat pro data alespoň do roku 5500 před selháním datediff z důvodu přetečení. Pokud se však pokusíte použít druhou přesnost, výše uvedená okamžitě selže.

Použití jiného pevného data, jako je '2009-01-01', nebo Dnešní datum (varování, ošklivější SQL) to vyřeší. Budoucí datum bude také fungovat. Pokud má časovou část 00:00:00, můžete na něm založit další datum a čas.

například:zaokrouhlete na nejbližších 30 sekund:

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


  1. Co je nového v MariaDB Server 10.5?

  2. PHP vkládání více polí zaškrtávacích polí A textových polí do databáze MySQL

  3. Pomalé hromadné vkládání pro tabulku s mnoha indexy

  4. php / Mysql nejlepší stromová struktura