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 fournir une référence pour pourquoi?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Dans votre requête, 2010-4-01
est traité comme une expression mathématique, il est donc essentiellement lu
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 is 2005
le convertir en un datetime
correct et l’utilisation de guillemets simples résoudra ce problème.)
Techniquement, l'analyseur peut vous permettre de vous en sortir
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
la conversion sera faite pour vous, mais à mon avis, elle est moins lisible que la conversion explicite en DateTime
pour le programmeur de maintenance qui viendra après vous.
Essayez de placer votre date dans une chaîne de caractères.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Nous pouvons utiliser comme ci-dessous aussi
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;
Commencez par convertir TexBox en date et heure puis .... utilisez cette variable dans la requête
Pour résumer, la bonne réponse est .....
sélectionnez * à partir de la base de données où Date> = '20100401' (Format de la date aaaaamjjj)
Cela évitera tout problème avec d’autres systèmes linguistiques et utilisera l’index.