sql >> Database >  >> RDS >> Sqlserver

Krijg rij waar datetime kolom =vandaag - SQL server noob

Op SQL Server 2008 zou u een nieuwe DATE . hebben gegevenstype dat u hiervoor zou kunnen gebruiken:

SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))

De CAST(GETDATE() AS DATE) werpt de huidige datum en tijd naar een alleen-datumwaarde, b.v. retourneer '2010-04-06' voor 6 april 2010. Als je daar één dag aan toevoegt, worden in feite alle datetime-waarden van vandaag geselecteerd.

In SQL Server 2005 is er geen gemakkelijke manier om dit te doen - de meest elegante oplossing die ik hier vond is het gebruik van numerieke manipulatie van de DATETIME om hetzelfde resultaat te bereiken:

SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) AND 
   DATEADD(DAY, 1, CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME))


  1. SQRT() Functie in Oracle

  2. Voeg gegevens in 3 tabellen tegelijk in met Postgres

  3. SQLite UNIEKE beperking

  4. Gebruik sys.sql_dependencies niet in SQL Server (het is verouderd)