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