486 votes

Comment faire une requête pour toutes les dates supérieures à une certaine date dans le serveur SQL ?

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 expliquer pourquoi ?

31 votes

Mettez des guillemets simples autour d'elle

4 votes

En plus des guillemets, je recommande de toujours utiliser un format sûr et sans ambiguïté pour les chaînes littérales de date uniquement. Le seul format auquel je fais confiance est YYYYMMDD. Voir mon commentaire à la réponse de David pour en connaître la raison...

3voto

Suresh Parmar Points 31
DateTime start1 = DateTime.Parse(txtDate.Text);

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= start1;

D'abord convertir TexBox en Datetime puis.... cette variable dans la Requête

0voto

Yee Points 1

Le format de date ne me pose aucun problème( Mydate Le type de données de l'utilisateur est datetime ) :
Where Mydate>'10/25/2021' o Where Mydate>'2021-10-25'
mais si on ajoute un temps, les réponses ci-dessus ne fonctionnent pas.
Voici ce que je fais :
where cast(Mydate as time)>'22:00:00'
Si votre requête nécessite une date, veuillez ajouter une date telle que :
where cast(Mydate as time)>'22:00:00' and Mydate='10/25/2021'

0voto

asharilyas Points 9

Vous devez d'abord convertir les deux dates dans le même format avant la conversion.

SELECT * 
FROM dbo.March2010 A
WHERE CONVERT(DATE, A.Date) >= 2010-04-01;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X