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

L'opérateur « BETWEEN » de MS SQL Server inclut-il les valeurs limites ?

Patricia Arquette
Libérer: 2025-01-01 03:50:10
original
766 Les gens l'ont consulté

Does MS SQL Server's `BETWEEN` Operator Include the Boundary Values?

Nature inclusive de l'opérateur "BETWEEN" de MS SQL Server

L'opérateur BETWEEN de MS SQL Server inclut-il les limites de plage ? En d'autres termes, la requête suivante :

SELECT foo
FROM bar
WHERE foo BETWEEN 5 AND 10
Copier après la connexion

sélectionne-t-elle des valeurs qui sont exactement 5 et 10, ou ces valeurs sont-elles exclues de la plage ?

Réponse :

L'opérateur BETWEEN dans MS SQL Server est inclusif, ce qui signifie qu'il inclut à la fois les valeurs de début et de fin dans la plage spécifiée. Par conséquent, la requête ci-dessus sélectionnera les lignes où la colonne foo a des valeurs comprises entre 5 et 10 inclus.

Depuis Books Online :

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

DateTime Avertissement :

Lorsque vous travaillez avec DateTimes, il est important de noter que si seule une date est fournie, la valeur est traitée comme minuit ce jour-là. Pour éviter de manquer des heures dans la date de fin ou de dupliquer la capture de données pour les données du jour suivant, il est recommandé de soustraire 3 millisecondes à la date de fin. En effet, toute valeur inférieure à 3 millisecondes sera arrondie à minuit le lendemain.

Exemple :

Pour obtenir toutes les valeurs de juin 2016, utilisez ce qui suit requête :

where myDateTime between '20160601' and DATEADD(millisecond, -3, '20160701')
Copier après la connexion

Cela se traduit to :

where myDateTime between '20160601 00:00:00.000' and '20160630 23:59:59.997'
Copier après la connexion

datetime2 et datetimeoffset :

Soustraire 3 ms d'une date peut entraîner des lignes manquantes dans la fenêtre de 3 ms. La solution la plus efficace est d'utiliser les opérateurs suivants :

where myDateTime >= '20160601' AND myDateTime < '20160701'
Copier après la connexion

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 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