Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

martes, 16 de julio de 2013

Seleccionar registros entre dos fechas en SQL Server 2005

Para seleccionar registros que se encuentren entre dos fechas almacenadas en un campo específico tipo DateTime, se debe crear un script de la siguiente forma:

Select * from tabla1 where campoFecha > Convert(char(19), '11/01/2010', 113) and campoFecha < Convert(char(19), '11/08/2010', 113)

La fecha debe estar en el formato dd/MM/yyyy HH:mm:ss (formato de fecha y 24 horas. Suele arrojar error si la hora está en el formato am/pm).
En C# la conversión de una fecha almacenada en una variable tipo DateTime al formato de 24 horas se realiza con la siguiente instrucción sacada de la web de MSDN:

DateTime date1 = alguna fecha;
string sDate = date1.ToString("dd/MM/yyyy HH:mm:ss", System.Threading.Thread.CurrentThread.CurrentCulture);

Para armar el script simplemente se concatena utilizando la variable sDate.

Para eliminar, el script tendrá la forma:
Delete from tabla1 where campoFecha = Convert(char(19), '11/08/2010 15:00:00', 113)

En ambos casos, la hora es opcional.
Más información acerca de la función Convert de Transact-sql en este enlace.
La función Convert de transact-sql que utilizo es sacada de Onglasses.
Una lista completa del uso de la función Convert de transact-sql en este enlace.

No hay comentarios: