Maison > base de données > tutoriel mysql > Comment arrondir les valeurs DateTime à la minute ou à l'heure la plus proche dans T-SQL ?

Comment arrondir les valeurs DateTime à la minute ou à l'heure la plus proche dans T-SQL ?

Patricia Arquette
Libérer: 2025-01-11 11:28:40
original
187 Les gens l'ont consulté

How to Round DateTime Values to the Nearest Minute or Hour in T-SQL?

Arrondir la valeur datetime à la minute ou à l'heure la plus proche en T-SQL

T-SQL fournit des fonctions intégrées pour arrondir les valeurs datetime à la minute ou à l'heure la plus proche. Les valeurs arrondies sont utiles pour l'analyse des données et la génération de rapports.

Pour arrondir une valeur datetime à la minute la plus proche, utilisez la formule suivante :

dateadd(mi, datediff(mi, 0, @dt), 0)
Copier après la connexion

Où, @dt représente la valeur datetime à arrondir.

Par exemple, arrondir la valeur « 22-09-2007 15:07:38.850 » à la minute la plus proche donne « 22-09-2007 15:07:00.000 ».

Pour arrondir une valeur datetime à l'heure la plus proche, utilisez :

dateadd(hour, datediff(hour, 0, @dt), 0)
Copier après la connexion

Cette formule tronque efficacement les secondes et les minutes d'une valeur datetime. En utilisant le même exemple, arrondir « 22-09-2007 15:07:38.850 » à l’heure la plus proche donne « 22-09-2007 15:00:00.000 ».

De plus, l'arrondi vers le haut ou vers le bas peut être obtenu en ajoutant une demi-minute ou une demi-heure à la valeur datetime avant la troncature.

Exemple :

select dateadd(mi, datediff(mi, 0, dateadd(s, 30, @dt)), 0)
select dateadd(hour, datediff(hour, 0, dateadd(mi, 30, @dt)), 0)
Copier après la connexion

Le résultat est :

<code>2007-09-22 15:08:00.000
2007-09-22 15:00:00.000</code>
Copier après la connexion

Avant l'introduction du type de données date dans SQL Server 2008, une technique similaire était utilisée pour tronquer les parties heures, minutes et secondes d'une valeur datetime afin d'obtenir uniquement la date. L'idée est de déterminer le nombre de jours entre une date et une heure fixe (0, ce qui signifie 1900-01-01 00:00:00.000). En ajoutant ce nombre de jours à un instant fixe dans le temps, vous obtenez la date d'origine avec l'heure réglée à 00:00:00.000.

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