sql >> Databasteknik >  >> RDS >> Sqlserver

Få rad där datetime-kolumnen =idag - SQL-server noob

På SQL Server 2008 skulle du ha en ny DATE datatyp, som du kan använda för att uppnå detta:

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) kastar det aktuella datumet och tiden till ett värde endast för datum, t.ex. returnera '2010-04-06' för den 6 april 2010. Om du lägger till en dag till det väljs i princip alla datum och tid-värden för idag.

I SQL Server 2005 finns det inget enkelt sätt att göra detta - den mest eleganta lösningen jag hittade här är att använda numerisk manipulation av DATETIME för att uppnå samma 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. Vad är skillnaden mellan primärt index och sekundärt index exakt?

  2. Hur man hittar EBS R12 komponenter Version

  3. Hur man använder HAVING-satsen i SQL

  4. Postgres-fel vid uppdatering av kolumndata