Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

DATEDIFF() ou BETWEEN para intervalos de datas em consultas SQL


Suas duas consultas não são equivalentes. O datediff versão incluirá todos os valores de 01-Jan-2013 independentemente do tempo, enquanto a versão intermediária incluirá apenas as linhas em 01-Jan-2013 onde a hora é 00:00:00 .

Se você verificar o intervalo e não fizer nenhum cálculo na coluna, sua consulta poderá usar um índice em Something_Date e ao mesmo tempo incluir todos os valores de 01-Jan-2013 independentemente da parte do tempo.
where
  SIH.[Something_Date] >= '19700101' and
  SIH.[Something_Date] < '20130102'