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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-10 14:12:42826parcourir

How to Round HH:MM Time Values to the Nearest 15-Minute Interval in T-SQL?

Arrondir les valeurs de temps HH:MM à l'intervalle de 15 minutes le plus proche en T-SQL

Dans l'analyse des données, arrondir les valeurs de temps à l'intervalle spécifié le plus proche est une tâche courante. Dans cet exemple, notre objectif est d'arrondir les valeurs HH:MM à l'intervalle de 15 minutes le plus proche.

Méthodes qui ne nécessitent pas de fonctions définies par l'utilisateur

Bien que l'utilisation de fonctions définies par l'utilisateur (UDF) ou d'instructions CASE soit une approche viable, il existe des moyens plus élégants d'éviter de les utiliser. Une solution consiste à utiliser les fonctions DATEADD et DATEDIFF :

<code class="language-sql">select dateadd(minute, datediff(minute,0,GETDATE()) / 15 * 15, 0)</code>

Ici, GETDATE() représente la valeur de date et d'heure actuelle. La fonction DATEDIFF calcule la différence en minutes entre l'heure actuelle et une date de référence fixe de 0. Nous avons ensuite divisé cette différence par 15 et multiplié par 15 pour obtenir l'intervalle de 15 minutes le plus proche. Enfin, la fonction DATEADD ajoute cet intervalle à la date de référence, ce qui donne une valeur temporelle arrondie.

Remarques

Cette méthode convient aux cas où seules les minutes sont pertinentes et les secondes peuvent être ignorées. En raison de problèmes de débordement potentiels, il peut gérer des dates allant jusqu'à l'an 5500. Toutefois, l'utilisation d'une date spécifique (par exemple, « 2009-01-01 ») ou de la date du jour comme point de référence peut contourner cette limitation.

Exemple

Par exemple, utiliser la méthode ci-dessus pour arrondir un horodatage tel que « 00:08:00 » à l'intervalle de 15 minutes le plus proche donnerait « 00:15:00 ». De même, « 00:07:00 » sera arrondi à « 00:00:00 ».

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