sql >> Database teknologi >  >> RDS >> Sqlserver

Datodel for tiden mellem (i stedet for Konverter dato)

Bare for eksempel kan du bruge dette

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

Men dette er faktisk ikke en løsning!!!

Den bedste måde er at indføre 1 mere beregnet kolonne som

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

Opret indeks på det og brug in where-klausulen

WHERE NewColumn BETWEEN 1220 AND 1550


  1. Kan ikke få fjernadgang til en forekomst af SQL Server 2008 R2

  2. Hvordan arbejder man med PGpoint for Geolocation ved hjælp af PostgreSQL?

  3. Django-migreringer - er det muligt at bruge syd midt i projektet?

  4. Oracle-datoformatbilledet slutter før konvertering af hele inputstrengen