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

Datepart untuk waktu antara (bukan tanggal Konversi)

Misalnya saja Anda dapat menggunakan ini

DECLARE 
    @min FLOAT = CAST(CAST('19000101 12:20' AS DATETIME) AS FLOAT),
    @max FLOAT = CAST(CAST('19000101 15:50' AS DATETIME) AS FLOAT)

SELECT 
    *
FROM table
WHERE CAST(DateField AS FLOAT) - FLOOR(CAST(DATEFIELD AS FLOAT)) BETWEEN @min AND @max

Tapi ini sebenarnya bukan solusi!!!

Cara terbaik adalah dengan memperkenalkan 1 kolom terhitung lagi sebagai

NewColumn AS DATEPART(HOUR, DateColumn)*100+DATEPART(minute, DateColumn)  

Buat indeks di atasnya dan gunakan di mana klausa

WHERE NewColumn BETWEEN 1220 AND 1550


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyebarkan Grup Ketersediaan SQL Server AlwaysOn di Linux

  2. UPDATE dan REPLACE bagian dari string

  3. Tabel Temp SQL Server vs Variabel Tabel

  4. Cara ORDER BY di SQL PIVOT

  5. Konversi 'datetime' menjadi 'date' di SQL Server (Contoh T-SQL)