Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obter linha onde coluna de data e hora =hoje - SQL server noob


No SQL Server 2008, você teria um novo DATE tipo de dados, que você pode usar para conseguir isso:
SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))

O CAST(GETDATE() AS DATE) converte a data e hora atuais para um valor somente de data, por exemplo retorne '2010-04-06' para 6 de abril de 2010. Adicionar um dia a isso basicamente seleciona todos os valores de data e hora de hoje.

No SQL Server 2005, não há uma maneira fácil de fazer isso - a solução mais elegante que encontrei aqui é usar a manipulação numérica do DATETIME para obter o mesmo resultado:
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))