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

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

Susan Sarandon
Libérer: 2025-01-10 13:56:42
original
684 Les gens l'ont consulté

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

Calcul exact : Arrondir les valeurs de temps T-SQL à l'intervalle de 15 minutes le plus proche

Lorsque vous traitez des données temporelles dans T-SQL, il est souvent nécessaire d'arrondir les valeurs à un intervalle de temps spécifique. Une exigence courante consiste à arrondir les valeurs HH:MM à l'intervalle de 15 minutes le plus proche.

Méthode d'arrondi efficace

Un moyen efficace d'arrondir les valeurs de temps à l'intervalle de 15 minutes le plus proche sans s'appuyer sur des instructions UDF ou CASE complexes, mais en utilisant à la place les fonctions DATEADD et DATEDIFF. Cette méthode comprend :

  • Utilisez DATEDIFF pour calculer la différence entre une valeur de temps donnée et la date zéro (0).
  • Utilisez la division entière pour diviser la différence par 15 afin de déterminer combien d'intervalles de 15 minutes se sont écoulés.
  • Utilisez DATEADD pour multiplier le résultat par 15 et ajouter le nombre approprié de minutes à la date zéro.

Exemple

Appliquez cette méthode à votre besoin spécifique de calculs à l'aide des fonctions CONVERT, DATEADD et DATEDIFF et vous obtiendrez la requête suivante :

SELECT DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0, CONVERT(CHAR(8), DATEADD(n, SUM(DATEDIFF(n, starttime, stoptime)), 0), 108)) / 15.0, 0) * 15, 0)
Copier après la connexion

Ce calcul arrondit la valeur temporelle HH:MM exactement à l'intervalle de 15 minutes le plus proche, garantissant qu'une valeur telle que 00:08:00 devient 00:15:00 et 00:07:00 devient 00 : 00:00.

Autres méthodes

Bien que les méthodes DATEADD et DATEDIFF soient efficaces et précises, il existe plusieurs autres méthodes que vous pouvez envisager pour arrondir les valeurs de temps dans T-SQL :

  • Utilisez la fonction ROUND et précisez l'intervalle :

      ROUND(time_value, 15)
    Copier après la connexion
  • Utilisation de la fonction FLOOR de SQL Server 2012 :

      FLOOR(DATEADD(MINUTE, time_value, 0))
    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