Maison >base de données >tutoriel mysql >Comment puis-je extraire efficacement la partie date d'une valeur DateTime dans SQL Server ?

Comment puis-je extraire efficacement la partie date d'une valeur DateTime dans SQL Server ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-13 07:55:42979parcourir

How Can I Efficiently Extract the Date Part from a DateTime Value in SQL Server?

Extraire la date de la valeur datetime de SQL Server

La plupart des applications SQL gèrent des données contenant des composants de date et d'heure. Cependant, dans certains cas, il suffit d'extraire la partie date et de supprimer les informations temporelles. Ceci peut être réalisé efficacement grâce à diverses techniques dans SQL Server.

La méthode la plus efficace

Bien que plusieurs méthodes existent, le moyen le plus efficace d'extraire des dates de datetime dans SQL Server est d'utiliser une combinaison de la fonction DATEADD() et de la fonction DATEDIFF(). Cette méthode comprend les étapes suivantes :

  1. Utilisez DATEDIFF(DAY, 0, ) pour calculer le nombre de jours entre 0 et la date/heure donnée. Cette étape calcule efficacement le décalage quotidien par rapport à l'époque (1er janvier 1900).
  2. Appliquez DATEADD() au champ DAY et utilisez le résultat de l'étape 1 pour obtenir une nouvelle date/heure avec son composant horaire réinitialisé à 00:00:00.

Par exemple :

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '2008-09-25 12:34:56'), 0)</code>

Comparé à d'autres options telles que la conversion en utilisant CAST(FLOOR(CAST(... AS FLOAT)) AS DATETIME) ou CONVERT(DATETIME, CONVERT(VARCHAR(10), ..., 120), 120) , ceci Il a été prouvé que cette méthode est la méthode la plus rapide et la plus efficace.

Référence

Les tests de performances sur un ensemble de données contenant plus de 130 millions de lignes d'enregistrements avec des horodatages précis à la milliseconde près ont montré les résultats suivants :

方法 CPU时间(ms)
纯SELECT 422
Floor-Cast 625
字符串转换 1953
DateAdd 531

Il convient de noter que les performances peuvent varier en fonction de la taille, de la distribution et d'autres facteurs de vos données.

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