Maison > base de données > tutoriel mysql > Comment arrondir les valeurs de temps HH:MM aux 15 minutes les plus proches dans T-SQL ?

Comment arrondir les valeurs de temps HH:MM aux 15 minutes les plus proches dans T-SQL ?

Patricia Arquette
Libérer: 2025-01-10 14:09:41
original
723 Les gens l'ont consulté

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

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

L'arrondi à un intervalle spécifique est une tâche courante lorsque l'on travaille avec des valeurs temporelles. Cet article explore une méthode T-SQL élégante pour arrondir les valeurs HH:MM à l'intervalle de 15 minutes le plus proche sans s'appuyer sur des fonctions définies par l'utilisateur (UDF) ou des instructions case.

Solution :

La clé de cette technique est d'utiliser les fonctions datediff() et dateadd() pour manipuler les composants de la date tout en ignorant les secondes. Nous pouvons déterminer le nombre de minutes écoulées en calculant la différence entre la date et l'heure d'entrée et une date fixe avec une composante temporelle de 00:00:00.

Cette valeur peut ensuite être divisée par 15 pour obtenir le nombre d'intervalles de 15 minutes. Le résultat est multiplié par 15 et rajouté à la date fixe à l'aide de dateadd() pour donner une heure arrondie à l'intervalle de 15 minutes le plus proche.

Exemple de requête :

Considérons l'exemple de requête suivant :

<code class="language-sql">SELECT dateadd(minute, datediff(minute, '2023-01-01', GETDATE()) / 15 * 15, '2023-01-01') AS RoundedTime</code>
Copier après la connexion

Remplacer GETDATE() par la valeur datetime souhaitée renverra la valeur HH:MM arrondie comme ceci :

<code>| 输入时间 | 舍入时间 |
|---|---|
| 00:08:00 | 00:15:00 |
| 00:07:00 | 00:00:00 |
| 01:59:00 | 02:00:00 |</code>
Copier après la connexion

Remarque :

Cette approche garantit un comportement d'arrondi cohérent quelle que soit la valeur de temps d'entrée. Cela évite également les erreurs potentielles de débordement lorsqu’il s’agit de plages de dates plus grandes. Bien que cela ne nécessite pas de distribution, une date correctement fixée avec une composante temporelle de 00:00:00 doit être utilisée comme base de calcul.

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