lunes, 5 de julio de 2010

Como filtrar un campo Datetime en mi consulta teniendo como parámetro una fecha simple en SQL Server

lunes, 5 de julio de 2010

Poseemos una tabla en la que ademas de otros campos esta incluido la fecha, pero resulta que lo hemos declarado como tipo de dato "DateTime", y que por defecto, al momento de crear o modificar el registro, este campo incluye ademas la hora, minutos, segundos y milisegundos (2007-06-08 12:23:56.234) en la que fue actualizada.

Esto puede resultar un dolor de cabeza al momento de realizar una consulta en la que tengamos como criterio de selección este campo fecha, ya que generalmente lo filtramos o parametrizamos como fecha y formato distinto: Select * from compras where fecha='08/06/2007'. Y el resultado de esto seria: Maldita sea, no tengo registros.

Bueno os traigo una solución sencilla por medio de una función hecha en SQL Server en la que podeis filtrais sin mas apuros que el de ejecutarla:

CREATE FUNCTION [dbo].[CONVERT_FECHA_SIMPLE]
(
@FECHA DATETIME
)
RETURNS SMALLDATETIME
AS
BEGIN
RETURN CAST(CONVERT(varchar, @FECHA, 103) AS DATETIME)
END

Bueno, después de codificar esto, acá lo único que deberais haceis en tu procedimiento almacenado en el cual harás la tan ansiada consulta es llamar a la función convert_fecha_simple desde el campo criterio, asi, mirais:

Select * from Compras where dbo.convert_fecha_simple(fecha)='08/06/2007'


Post relacionados :

Buscar

 
Copyright © 2009 .Net Solucion