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é?
sql
sql-server
datetime
Eric Francis
fuente
fuente
Respuestas:
En su consulta,
2010-4-01
se trata como una expresión matemática, por lo que en esencia se lee(
2010 minus 4 minus 1 is 2005
Convirtiéndolo en un apropiadodatetime
y usando comillas simples se solucionará este problema).Técnicamente, el analizador podría permitirle salirse con la suya
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.fuente
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.
fuente
Podemos usar como abajo también
fuente
Primero convierta TexBox en Datetime y luego ... use esa variable en Query
fuente
Para resumirlo todo, la respuesta correcta es:
Esto evitará cualquier problema con otros sistemas de idiomas y utilizará el índice.
fuente