sql >> Databáze >  >> RDS >> Sqlserver

Získat řádek, kde sloupec datetime =dnes - SQL server noob

Na SQL Server 2008 byste měli nové DATE datový typ, který byste k tomu mohli použít:

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) převede aktuální datum a čas na hodnotu pouze pro datum, např. návrat '2010-04-06' pro 6. dubna 2010. Přidáním jednoho dne k tomu v podstatě vyberete všechny dnešní hodnoty data a času.

V SQL Server 2005 neexistuje žádný snadný způsob, jak to udělat – nejelegantnějším řešením, které jsem zde našel, je použití číselné manipulace s DATETIME k dosažení stejného výsledku:

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. jak získat počáteční a koncové datum všech týdnů mezi dvěma daty na serveru SQL?

  2. Nastavení optimálního prostředí pro PostgreSQL

  3. načíst vícenásobné sloupce seskupit podle data intervall

  4. Koncepty Oracle High Availability v PostgreSQL