Maison >base de données >tutoriel mysql >L'opérateur « BETWEEN » de SQL Server inclut-il les valeurs de début et de fin ?

L'opérateur « BETWEEN » de SQL Server inclut-il les valeurs de début et de fin ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 19:26:10361parcourir

Does SQL Server's `BETWEEN` Operator Include the Start and End Values?

L'opérateur « Entre » de MS SQL Server inclut-il des limites de plage ?

L'opérateur BETWEEN dans MS SQL Server, comme son nom l'indique, vérifie si une expression donnée se situe dans une plage spécifiée. Cependant, une question courante se pose : cette plage inclut-elle ou exclut-elle les valeurs limites ?

La réponse est que BETWEEN est un opérateur inclusif, ce qui signifie qu'il inclut à la fois les limites inférieure et supérieure de la plage. Pour clarifier :

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10

Cette requête récupérera les lignes où foo est >= 5 et <= 10, incluant effectivement les valeurs 5 et 10 dans le résultat. Ceci est confirmé par la documentation de Microsoft :

BETWEEN renvoie TRUE si la valeur de test_expression est supérieure ou égale à la valeur de begin_expression et inférieure ou égale à la valeur de end_expression.

Avertissements DateTime

Pour les valeurs DateTime, il y a une considération subtile à garder à l'esprit. Si seule une date est spécifiée, elle est interprétée comme minuit ce jour-là. Pour éviter de manquer ou de dupliquer des valeurs d'heure, il est recommandé d'utiliser une plage qui exclut 3 millisecondes avant minuit à la date de fin.

Par exemple, pour récupérer toutes les valeurs DateTime en juin 2016 :

WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')

Cela garantit que la plage s'étend jusqu'à la fin du mois sans inclure les valeurs de juillet 1er.

datetime2 et datetimeoffset

Pour ces types de données, il est plus sûr d'utiliser les options >= et < opérateurs au lieu de BETWEEN. Par exemple :

WHERE myDateTime >= '20160601' AND myDateTime < '20160701'

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn