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

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

DDD
Libérer: 2025-01-11 10:09:42
original
876 Les gens l'ont consulté

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

Méthode d'arrondi des valeurs datetime T-SQL avec une précision en minutes ou en heures

SQL Server fournit des fonctions intégrées pour arrondir facilement les valeurs datetime à la minute ou à l'heure la plus proche. Par exemple, pour la valeur datetime donnée « 2007-09-22 15:07:38.850 », vous pouvez utiliser la fonction suivante :

<code class="language-sql">-- 舍入到最近的分钟
SELECT DATEADD(mi, DATEDIFF(mi, 0, @dt), 0)

-- 舍入到最近的小时
SELECT DATEADD(hour, DATEDIFF(hour, 0, @dt), 0)</code>
Copier après la connexion

Ces méthodes tronquent respectivement les secondes et les minutes pour obtenir l'effet d'arrondi souhaité. Si vous devez arrondir vers le haut ou vers le bas, vous pouvez respectivement ajouter ou soustraire une demi-minute ou une demi-heure avant de tronquer :

<code class="language-sql">-- 舍入到最近的分钟(向上)
SELECT DATEADD(mi, DATEDIFF(mi, 0, DATEADD(s, 30, @dt)), 0)

-- 舍入到最近的小时(向上)
SELECT DATEADD(hour, DATEDIFF(hour, 0, DATEADD(mi, 30, @dt)), 0)</code>
Copier après la connexion

Avant l'introduction du type de données date dans SQL Server 2008, la méthode ci-dessus pouvait être utilisée pour tronquer la partie heure du type datetime, ne laissant que la partie date. Cela fonctionne en calculant le nombre de jours entre la date et l'heure et un point fixe dans le temps (0, représentant 1900-01-01 00:00:00.000), puis en ajoutant ce nombre au point fixe dans le temps :

<code class="language-sql">-- 截断时间部分以仅获取日期
SELECT DATEADD(day, DATEDIFF(day, 0, @dt), 0)</code>
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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal