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ê?
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ê?
Respostas:
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Na sua consulta, 2010-4-01
é tratada como uma expressão matemática, portanto, em essência, é lida
select *
from dbo.March2010 A
where A.Date >= 2005;
A 2010 minus 4 minus 1 is 2005
conversão para uma adequada datetime
e o uso de aspas simples corrigirá esse problema.
Tecnicamente, o analisador pode permitir que você se safe
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
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ê.
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.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Podemos usar como abaixo também
SELECT *
FROM dbo.March2010 A
WHERE CAST(A.Date AS Date) >= '2017-03-22';
SELECT *
FROM dbo.March2010 A
WHERE CAST(A.Date AS Datetime) >= '2017-03-22 06:49:53.840';
DateTime start1 = DateTime.Parse(txtDate.Text);
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= start1;
Primeiro converta o TexBox no Datetime e, em seguida, use essa variável na Consulta