Maison > base de données > tutoriel mysql > Comment puis-je tronquer efficacement les dates et heures dans SQL Server ?

Comment puis-je tronquer efficacement les dates et heures dans SQL Server ?

DDD
Libérer: 2025-01-17 18:36:15
original
780 Les gens l'ont consulté

How Can I Efficiently Truncate Datetimes in SQL Server?

Troncation datetime SQL Server : meilleures pratiques et méthodes

Supprimer la partie heure d'une valeur datetime est une tâche fréquente dans SQL Server. Ce guide explore diverses techniques, mettant en évidence leurs forces et leurs faiblesses.

L'approche recommandée : tirer parti de la fonction CAST (SQL Server 2008 et versions ultérieures)

Pour SQL Server 2008 et versions ultérieures, la fonction CAST fournit la solution la plus simple et la plus fiable :

<code class="language-sql">CAST(your_datetime_column AS DATE)</code>
Copier après la connexion

Cette approche est à la fois efficace et conforme aux normes ANSI, garantissant compatibilité et prévisibilité.

La méthode standard (pré-SQL Server 2008)

Avant SQL Server 2008, la fonction DATETIMEADD était la méthode préférée :

<code class="language-sql">DATEADD(DD, DATEDIFF(DD, 0, getdate()), 0)</code>
Copier après la connexion

Cela calcule la différence en jours par rapport à une date de référence (0) et l'ajoute, supprimant ainsi la composante temporelle.

Une option plus rapide, mais moins fiable

Une alternative plus rapide, bien que moins portable et potentiellement sujette à des modifications dans les futures versions de SQL Server, implique le casting vers et depuis un float :

<code class="language-sql">CAST(FLOOR(CAST(your_datetime_column AS FLOAT)) AS DATETIME)</code>
Copier après la connexion

Cette méthode exploite la représentation binaire interne des valeurs datetime. Cependant, sa dépendance aux détails de mise en œuvre le rend moins robuste.

La méthode à éviter : utiliser CONVERT

Utiliser CONVERT pour tronquer les dates et heures est généralement déconseillé. Sa dépendance aux conversions de chaînes introduit une inefficacité et des problèmes potentiels liés aux paramètres régionaux :

<code class="language-sql">CAST(CONVERT(CHAR(11), your_datetime_column, 113) AS DATETIME)</code>
Copier après la connexion

Optimisation des performances

La méthode CAST (disponible depuis SQL Server 2008) est généralement la plus efficace. Cependant, la stratégie la plus efficace consiste à minimiser le besoin de troncature date/heure grâce à une conception minutieuse de la base de données et à une optimisation des requêtes.

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