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?
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?
Réponses:
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, donc en substance il se lit
select *
from dbo.March2010 A
where A.Date >= 2005;
(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
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
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.
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.
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';
Nous pouvons également utiliser comme ci-dessous
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;
Convertissez d'abord TexBox en Datetime puis .... utilisez cette variable dans la requête