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>
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>
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>
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!