Archivo

Posts Tagged ‘Remover la hora SQL SERVER’

Remove hour in DateTime variable using SQL SERVER

febrero 3, 2013 Deja un comentario


When is using DateTime var and save date and hour, the problem is using filters of date only, example:

register1 01/01/2010 01:01:12
register2 02/01/2010 12:50

I run a filter that return all registers of december 2 to january 2 :

SELECT Register FROM Registers

WHERE dateRegister BETWEEN ‘02/12/2009’ AND ‘02/01/2010’

 

This return 1 register only, because the register 2 has date greater than the filter

The solution is to convert varchar to datetime:


SELECT Register

FROM Registers
WHERE CONVERT(DateTime,CONVERT(varchar, Fecha , 101),103)
BETWEEN ‘02/12/2009’ AND ‘02/01/2010’


it works!!

Anuncios

Remover la hora en una variable DateTime usando SQL SERVER

enero 27, 2010 4 comentarios


Aveces utilizamos variables DateTime y guardamos fecha y hora, por ejemplo en una tabla de LOG, pero el problema es que luego deseamos realizar un filtro solo por la fecha y tendremos problemas les podre un ejemplo:
Registro1 01/01/2010 01:01:12
Registro2 02/01/2010 12:50


Si quiero realizar un filtro que devuelva todos los registros del 2 de diciembre al 2 de enero seria asi:

SELECT Registro FROM Registros 
WHERE Fecha BETWEEN ‘02/12/2009’ AND ‘02/01/2010’ 


Solo me traerá el registro uno, ya que al tomar la hora toma la Fecha de registro2 con una fecha mayor a la ingresada en el filtro .
La solución es realizar una doble conversión primero a Varchar y luego a DateTime

SELECT Registro
FROM Registros 
WHERE CONVERT(DateTime,CONVERT(varchar, Fecha , 101),103)
BETWEEN ‘02/12/2009’ AND ‘02/01/2010’ 


De esta manera pueden quitar la hora, tanto para comprar como para algún dato que entre como parámetro algún procedimiento almacenado o función. pueden jugar con el formato de la conversion si quieren otro tipo de resultados.
Espero que a todos les sirva, si les sirve me cuentan :).