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 :
select dateadd(minute, datediff(minute,0,GETDATE()) / 15 * 15, 0)
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!