datetime
ChampsExtraire uniquement la partie date d'un champ SQL Server datetime
est une tâche courante. Deux approches courantes sont comparées ici pour leur efficacité :
Méthode A :
<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
Méthode B :
<code class="language-sql">SELECT CAST(CONVERT(CHAR(11), GETDATE(), 113) AS DATETIME)</code>
Référence de performances
Bien que les deux méthodes soient généralement rapides, la méthode A démontre systématiquement des performances supérieures, en particulier avec des ensembles de données plus volumineux. Les tests sur un ensemble de données d'un million de lignes ont révélé une consommation de processeur considérablement inférieure à l'aide de la méthode A, soulignant son efficacité.
Facteurs supplémentaires
Au-delà de la vitesse, d'autres considérations influencent le choix de la méthode :
CONVERT
à CHAR
introduit des problèmes potentiels avec les formats de date spécifiques aux paramètres régionaux.FLOAT
en interne, ce qui peut avoir des implications en matière de stockage.SQL Server 2008 et versions ultérieures
Pour SQL Server 2008 et versions ultérieures, la fonction CAST
offre une alternative simplifiée :
<code class="language-sql">CAST(GETDATE() AS DATE)</code>
Cette approche est efficace et renvoie directement un DATE
type de données.
Optimisation de l'index
Essentiellement, l'application de fonctions ou d'opérations CAST
dans les clauses WHERE
peut entraver l'utilisation de l'index, ce qui a un impact sur les performances des requêtes. Évitez de telles pratiques autant que possible pour maintenir une vitesse de requête optimale.
Recommandation
Compte tenu des performances et de l'adaptabilité, la méthode recommandée pour supprimer le composant temporel des datetime
champs dans SQL Server est :
<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 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!