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

Comment arrondir T-SQL DateTime à la minute et à l'heure les plus proches ?

Patricia Arquette
Libérer: 2025-01-11 09:59:50
original
807 Les gens l'ont consulté

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

Utilisez la fonction pour arrondir T-SQL DateTime à la minute et à l'heure les plus proches

Question :

Comment arrondir une colonne datetime à la minute et à l'heure les plus proches en utilisant les fonctions existantes ?

Solution :

Pour arrondir une colonne datetime à la minute la plus proche, utilisez le code suivant :

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

Où @dt est la colonne datetime que vous souhaitez arrondir.

Pour arrondir une colonne datetime à l'heure la plus proche, utilisez le code suivant :

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

Par exemple, si la valeur de votre colonne @dt est « 22-09-2007 15:07:38.850 », ces requêtes renverront :

  • Dernière minute : 2007-09-22 15:07:00.000
  • Dernière heure : 2007-09-22 15:00:00.000

Arrondir vers le haut ou vers le bas :

Pour arrondir vers le haut ou vers le bas, ajoutez respectivement une demi-minute ou une demi-heure, puis tronquez :

-- 向上舍入到最近的分钟
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

Ces requêtes renverront :

  • Minute la plus proche, arrondie : 2007-09-22 15:08:00.000
  • Heure la plus proche, arrondie : 2007-09-22 16:00:00.000

Tronquer la partie heure pour obtenir la date :

Avant que SQL Server 2008 n'introduise le type de données date, vous pouviez utiliser une méthode similaire pour tronquer la partie heure d'une date/heure afin d'obtenir uniquement la date :

-- 获取 datetime 和固定点 (1900-01-01 00:00:00.000) 之间的日数
declare @days int
set @days = datediff(day, 0, @dt)

-- 将日数添加到固定点以获取日期,并将时间设置为 00:00:00.000
select dateadd(day, @days, 0)
Copier après la connexion

Cela renverra la partie date de la colonne @dt avec l'heure définie sur 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