Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

T-SQL:Bulatkan ke interval 15 menit terdekat

Saat ini saya menggunakan varian dateadd/dateiff dengan tanggal nol (0) untuk ini. Tidak diperlukan Pengecoran:

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

GETDATE() adalah apapun tanggal waktu Anda.

Ini akan berfungsi untuk tanggal setidaknya hingga tahun 5500 sebelum tanggal gagal karena luapan. Namun jika Anda mencoba menggunakan akurasi kedua, di atas akan langsung gagal.

Menggunakan tanggal tetap lainnya, seperti '01-01-2009', atau Tanggal hari ini (peringatan, SQL yang lebih jelek) akan memperbaikinya. Tanggal yang akan datang juga akan berfungsi. Selama ia memiliki bagian waktu 00:00:00, Anda dapat mendasarkan waktu lain pada waktu tersebut.

contoh:pembulatan ke 30 detik terdekat:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tujuan SQL Server vs Tujuan OLE DB

  2. Cara Menemukan Pengidentifikasi Unik yang Optimal dalam Tabel di SQL Server:sp_special_columns

  3. pisahkan alfa dan numerik menggunakan sql

  4. SQL Server SHOWPLAN_ALL

  5. Bagaimana cara memeriksa apakah ada Kendala di server Sql?