"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo comparar correctamente los valores de fecha y fecha en SQL Server?

¿Cómo puedo comparar correctamente los valores de fecha y fecha en SQL Server?

Publicado el 2025-03-22
Navegar:532

How Can I Correctly Compare DATETIME and DATE Values in SQL Server?

Comparación de fecha y hora con la fecha en el servidor sql

al comparar un valor de fecha y hora con solo una fecha, el resultado puede ser inesperado. Esto se debe a que el tipo de datos de fecha y hora incluye componentes de fecha y hora. Por ejemplo, si tiene una tabla de usuario con una columna realizada por Datetime, la siguiente consulta:

Select * from [User] U
where  U.DateCreated = '2014-02-07'     

no devolverá ningún registro, a pesar de que el usuario se creó en 2014-02-07 a las 12: 30: 47.220.

para comparar con precisión un dato con solo una fecha, use el siguiente método:

select * de Donde U.DatecRated & gt; = '2014-02-07' y U.Datecreated & lt; dateadd (día, 1, '2014-02-07')
Select * from [User] U 
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
Esta consulta es sargable, lo que significa que puede usar un índice en la columna de datos de data.

¿Por qué no usar las funciones? puede estar tentado a usar las funciones como convertir para extraer las funciones de la fecha. Sin embargo, esto no se recomienda. Uso de funciones en las condiciones de cláusula o unión:

Elimina la capacidad del optimizador para usar un índice en el campo
  • agrega cálculos innecesarios para cada fila de datos
  • [&] evitando entre
] entre las que también se entreguen y se entreguen y se entreguen y se acompañan entre

. rangos de tiempo. Use el siguiente formulario en su lugar: donde col> = '20120101' y col & lt; '20120201'

Esta forma es compatible con todos los tipos de datos y precisiones, independientemente de la parte del tiempo.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3