Ao aplicar a condição where :
WHERE DateFilled BETWEEN '02/01/2014' AND '02/28/2014'
Minha sintaxe não está detectando os valores que são preenchidos em 02/28/2014
.
Se eu escrever a sintaxe como
WHERE DateFilled >= '02/01/2014'
Estou recebendo a saída.
Na tabela do SQL Server, DateFilled
a coluna tem um valor conforme a seguir.
2014-02-28 09:24:00.000
Qual seria a razão? Qualquer conversão de data é necessária. Como obter StartDate
e EndDate
usar BETWEEN
condição?
Estou assumindo que DateFilled tem um tipo de dados de DateTime ou outro tipo de data que inclui uma parte do tempo. Ao usar valores DateTime no T-SQL, esteja ciente de que uma hora é sempre incluída e, se não for especificada, a meia-noite é usada por padrão. Consulte: http://technet.microsoft.com/en-us/library/ms180878(v=sql.105).aspx#ConversionBetweenStringLiteralsandDateandTimeDataTypes Quando a string de entrada for "DATE only" então "the TIME part defaults to 00:00 :00." No seu caso, a string "28/02/2014" é convertida em um valor de data e hora de 28/02/2014 00:00:00.000.
Sua consulta é interpretada como DateFilled entre '02/01/2014 00:00:00 .000' e '02/28/2014 00:00:00.000', portanto, o registro com uma data e hora de 2014-02-28 09:24: 00.000 (que ocorre após a meia-noite, não foi encontrado.
Sua consulta pode ser reescrita como
Tentar:
Isso converte a variável DATETIME em uma variável DATE que não contém hora. Isso não funciona no SQL Server 2000 ou 2005. O tipo de dados DATE foi introduzido no SQL Server 2008.