Les valeurs limites s'appliquent-elles à l'opérateur « entre » de MS SQL Server ?
L'opérateur « entre » dans MS SQL Server est inclusif, car défini dans Books Online. Cela signifie que les valeurs supérieures ou égales à la limite inférieure (« begin_expression ») et inférieures ou égales à la limite supérieure (« end_expression ») seront incluses dans le jeu de résultats.
Par exemple, ce qui suit la requête sélectionnera toutes les lignes où la colonne "foo" contient des valeurs comprises entre 5 et 10 inclus :
SELECT foo FROM bar WHERE foo BETWEEN 5 AND 10
DateTime Considérations
Lorsque vous travaillez avec des valeurs DateTime, il est important de noter que seule la partie date est prise en compte dans la comparaison "entre". Pour garantir des résultats précis, vous devez spécifier une composante temporelle située 3 millisecondes avant minuit pour la date de fin. Cela évite toute perte de données ou duplication pour les valeurs comprises dans la plage de dates de fin.
Par exemple, pour récupérer toutes les lignes où la colonne « myDateTime » contient des valeurs en juin 2016, vous devez utiliser la requête suivante :
WHERE myDateTime BETWEEN '20160601' AND DATEADD(millisecond, -3, '20160701')
Opérations Datetime2 et Datetimeoffset
Au lieu de soustraire 3 millisecondes, il est recommandé d'utiliser l'approche suivante, plus simple et plus précise, lorsque vous travaillez avec des types de données datetime2 ou datetimeoffset :
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!