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
Libérer: 2024-12-30 19:26:10
original
319 Les gens l'ont consulté

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
Copier après la connexion

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')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal