Comparando o tempo com a data no SQL Server
ao comparar um valor de tempo com apenas uma data, o resultado pode ser inesperado. Isso ocorre porque o tipo de dados do dateTime inclui componentes de data e hora. Por exemplo, se você tiver uma tabela de usuários com uma coluna DATECREATEL DA DATETIME, a seguinte consulta:
Select * from [User] U where U.DateCreated = '2014-02-07'
não retornará nenhum registro, mesmo que o usuário tenha sido criado em 2014-02-07 às 12: 30: 47.220. onde u.Datecreated & gt; = '2014-02-07' e U.Datecreated & lt; Dataadd (dia, 1, '2014-02-07')
Esta consulta é sargável, o que significa que pode usar um índice na coluna DataCreated. No entanto, isso não é recomendado. Usando funções na cláusula WHERE ou em condições de união:
Select * from [User] U where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')remove a capacidade do otimizador de usar um índice no campo
adiciona cálculos desnecessários para cada linha de dados
e evitando intervalos de tempo. Use o seguinte formulário:
onde col> = '20120101' e col & lt; '20120201'
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3