Lo estoy intentando:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
parece: 2010-03-04 00:00:00.000
Sin embargo, esto no está funcionando.
¿Alguien puede proporcionar una referencia de por qué?
Lo estoy intentando:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
parece: 2010-03-04 00:00:00.000
Sin embargo, esto no está funcionando.
¿Alguien puede proporcionar una referencia de por qué?
Respuestas:
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
En su consulta, 2010-4-01
se trata como una expresión matemática, por lo que en esencia se lee
select *
from dbo.March2010 A
where A.Date >= 2005;
( 2010 minus 4 minus 1 is 2005
Convirtiéndolo en un apropiado datetime
y usando comillas simples se solucionará este problema).
Técnicamente, el analizador podría permitirle salirse con la suya
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
hará la conversión por usted, pero en mi opinión es menos legible que la conversión explícita a un DateTime
programador de mantenimiento que vendrá después de usted.
SET LANGUAGE FRENCH
. :-) Para esa fecha, recibirá el 4 de enero en lugar del 1 de abril. Para otras fechas, es posible que obtenga un error.
CONVERT(datetime, '20100401 10:01:01')
- pasar 2010-04-01 funciona en SQL Server Management Studio pero no cuando se envía la declaración SQL a través de PHP / MSSQL.
Intenta incluir tu fecha en una cadena de caracteres.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Podemos usar como abajo también
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;
Primero convierta TexBox en Datetime y luego ... use esa variable en Query