Requête de dates supérieures à une date spécifique dans SQL Server
Pour tenter de récupérer des enregistrements dont les dates sont postérieures à une date spécifiée, vous peut rencontrer des problèmes avec votre requête. Par exemple, une requête similaire à celle ci-dessous :
SELECT * FROM dbo.March2010 A WHERE A.Date >= 2010-04-01;
où A.Date est au format 2010-03-04 00:00:00.000, peut ne pas donner les résultats attendus.
Pour résoudre ce problème, il est crucial de convertir l'expression de date au format datetime approprié à l'aide de la fonction Convertir. La syntaxe correcte est :
SELECT * FROM dbo.March2010 A WHERE A.Date >= Convert(datetime, '2010-04-01' )
La raison en est que lors de l'utilisation d'expressions mathématiques, SQL Server traite la valeur de date comme un nombre, ce qui entraîne des comparaisons incorrectes. La conversion de la date en datetime garantit que la comparaison est effectuée correctement.
Bien que SQL Server puisse permettre une conversion implicite à l'aide de guillemets simples, tels que :
SELECT * FROM dbo.March2010 A WHERE A.Date >= '2010-04-01'
il est considéré comme moins lisible et moins fiable que la méthode de conversion explicite. La conversion explicite garantit le traitement correct des dates, quels que soient les paramètres utilisateur ou la date actuelle du système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!