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