Estou tentando:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
parece: 2010-03-04 00:00:00.000
No entanto, isso não está funcionando.
Alguém pode fornecer uma referência para o porquê?
sql
sql-server
datetime
Eric Francis
fonte
fonte
Respostas:
Na sua consulta,
2010-4-01
é tratada como uma expressão matemática, portanto, em essência, é lidaA
2010 minus 4 minus 1 is 2005
conversão para uma adequadadatetime
e o uso de aspas simples corrigirá esse problema.Tecnicamente, o analisador pode permitir que você se safe
ele fará a conversão para você, mas, na minha opinião, é menos legível do que converter explicitamente em um
DateTime
programador de manutenção que virá depois de você.fonte
SET LANGUAGE FRENCH
. :-) Nessa data, você receberá 4 de janeiro em vez de 1º de abril. Para outras datas, você poderá receber um erro.CONVERT(datetime, '20100401 10:01:01')
- a passagem 2010-04-01 funciona no SQL Server Management Studio, mas não ao enviar a instrução SQL via PHP / MSSQL.Tente incluir sua data em uma sequência de caracteres.
fonte
Podemos usar como abaixo também
fonte
Primeiro converta o TexBox no Datetime e, em seguida, use essa variável na Consulta
fonte
Para resumir tudo, a resposta correta é:
Isso evitará qualquer problema com outros sistemas de idiomas e usará o índice.
fonte