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

Hent række hvor datetime column =today - SQL server noob

På SQL Server 2008 vil du have en ny DATE datatype, som du kan bruge til at opnå dette:

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

CAST(GETDATE() AS DATE) kaster den aktuelle dato og det aktuelle klokkeslæt til en kun datoværdi, f.eks. returner '2010-04-06' for den 6. april 2010. Tilføjelse af én dag til det vælger i princippet alle dato- og klokkeslætværdier for i dag.

I SQL Server 2005 er der ingen nem måde at gøre dette på - den mest elegante løsning, jeg fandt her, er at bruge numerisk manipulation af DATETIME for at opnå det samme resultat:

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. java - passerer array i oracle-lagret procedure

  2. Er der en Oracle SQL-forespørgsel, der samler flere rækker i én række?

  3. Måder at gendanne data fra SQL Server Transaction Log File

  4. Hvordan importerer man CSV-fildata til en PostgreSQL-tabel?