J'essaie:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
ressemble à: 2010-03-04 00:00:00.000
Cependant, cela ne fonctionne pas.
Quelqu'un peut-il indiquer pourquoi?
sql
sql-server
datetime
Eric Francis
la source
la source
Réponses:
Dans votre requête,
2010-4-01
est traité comme une expression mathématique, donc en substance il se lit(Le
2010 minus 4 minus 1 is 2005
convertir en un fichier appropriédatetime
et utiliser des guillemets simples résoudra ce problème.)Techniquement, l'analyseur peut vous permettre de vous en sortir avec
il fera la conversion pour vous, mais à mon avis, il est moins lisible que la conversion explicite en un
DateTime
pour le programmeur de maintenance qui viendra après vous.la source
SET LANGUAGE FRENCH
. :-) Pour cette date, vous obtiendrez le 4 janvier au lieu du 1er avril. Pour les autres dates, vous pourriez obtenir une erreur à la place.CONVERT(datetime, '20100401 10:01:01')
- le passage du 01/04/2010 fonctionne dans SQL Server Management Studio mais pas lors de l'envoi de l'instruction SQL via PHP / MSSQL.Essayez de placer votre date dans une chaîne de caractères.
la source
Nous pouvons également utiliser comme ci-dessous
la source
Convertissez d'abord TexBox en Datetime puis .... utilisez cette variable dans la requête
la source
Pour résumer le tout, la bonne réponse est:
Cela évitera tout problème avec d'autres systèmes linguistiques et utilisera l'index.
la source