Maison > base de données > tutoriel mysql > Comment arrondir efficacement les valeurs de temps à l'intervalle de 15 minutes le plus proche dans T-SQL ?

Comment arrondir efficacement les valeurs de temps à l'intervalle de 15 minutes le plus proche dans T-SQL ?

Mary-Kate Olsen
Libérer: 2025-01-10 14:16:41
original
271 Les gens l'ont consulté

How to Efficiently Round Time Values to the Nearest 15-Minute Interval in T-SQL?

T-SQL : arrondi temporel précis aux 15 minutes les plus proches

Arrondir efficacement les valeurs de temps à l'incrément de 15 minutes le plus proche est une tâche courante dans la base de données. Cet article présente une approche rationalisée utilisant les fonctions T-SQL intégrées, évitant les complexités des fonctions définies par l'utilisateur ou des instructions CASE.

L'objectif est d'arrondir les valeurs horaires au quart d'heure le plus proche. Par exemple, "00:08:00" est arrondi à "00:15:00", tandis que "00:07:00" est arrondi à "00:00:00".

Une méthode très efficace consiste à combiner les fonctions DATETADD et DATEDIFF. La formule exploite la différence en minutes à partir d'un point de départ fixe (par exemple, « 01-01-2000 ») pour calculer l'intervalle de 15 minutes le plus proche. Cela évite les DATEDIFF problèmes potentiels de dépassement d'entier qui peuvent survenir avec de très grandes plages de dates.

La formule fonctionne comme suit :

  1. DATEDIFF(minute, '2000-01-01', YourTimeValue) : Calcule le nombre total de minutes entre une date fixe et votre valeur horaire.

  2. / 15 : Divise le total des minutes par 15 pour déterminer le nombre d'intervalles de 15 minutes.

  3. * 15 : Multiplie le résultat par 15 pour obtenir le multiple de 15 minutes le plus proche.

  4. DATETADD(minute, ..., '2000-01-01') : Ajoute les minutes calculées à la date fixe, donnant la valeur de temps arrondie.

Par conséquent, la formule complète pour arrondir aux 15 minutes près est :

<code class="language-sql">DATETADD(minute, (DATEDIFF(minute, '2000-01-01', YourTimeValue) / 15) * 15, '2000-01-01')</code>
Copier après la connexion

Remplacez YourTimeValue par votre colonne ou variable d'heure réelle.

Cette technique est adaptable à d'autres intervalles d'arrondi. Par exemple, pour arrondir aux 30 secondes les plus proches, remplacez simplement second par minute et 30 par 15 dans la formule. La clé consiste à utiliser une date de début fixe pour éviter les erreurs de débordement. Cette approche fournit une solution concise et efficace pour un arrondi temporel précis dans T-SQL.

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