Maison > base de données > tutoriel mysql > Comment puis-je comparer efficacement uniquement la partie temporelle des valeurs DATETIME dans SQL Server ?

Comment puis-je comparer efficacement uniquement la partie temporelle des valeurs DATETIME dans SQL Server ?

Patricia Arquette
Libérer: 2024-12-26 01:08:09
original
294 Les gens l'ont consulté

How Can I Efficiently Compare Only the Time Portion of DATETIME Values in SQL Server?

Comparaison des valeurs temporelles dans SQL Server

Lors de la comparaison des valeurs temporelles stockées dans un champ datetime, il est essentiel de déterminer si le composant date doit être inclus dans la comparaison. Dans le scénario fourni, l'utilisateur vise à comparer uniquement la partie heure, à l'exclusion de la date.

La requête proposée utilisant la fonction CONVERT pour convertir les valeurs de temps en chaîne peut fonctionner, mais elle peut être inefficace. Une solution plus optimale consiste à exploiter la représentation interne à virgule flottante des valeurs datetime dans SQL Server.

Pour effectuer efficacement une comparaison temporelle uniquement, nous pouvons :

  1. Convertir la datetime valeurs à flotter à l'aide de la fonction CAST.
  2. Soustrayez la partie fractionnaire de chaque flotteur (composante temporelle) à l'aide du MOD opérateur.

Par exemple, étant donné deux valeurs datetime @first et @second :

DECLARE @first DATETIME = '2009-04-30 19:47:16.123';
DECLARE @second DATETIME = '2009-04-10 19:47:16.123';

SELECT (
    CAST(@first AS FLOAT) - FLOOR(CAST(@first AS FLOAT))
) - (
    CAST(@second AS FLOAT) - FLOOR(CAST(@second AS FLOAT))
) AS Difference;
Copier après la connexion

Cette approche compare directement les valeurs de temps sans impliquer le composant de date, fournissant ainsi des informations précises et efficaces. résultats.

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