Parametros de Fecha

06/09/2006 - 01:04 por Héctor | Informe spam
Hola como estan todos, espero que me puedan ayudar con esta situación:

Yo estoy utilizando SQL SERVER 2005 y Visual Basic
2005 , ademas de crystal reports.

El problema que tengo es referente a los resultados que me trae SQL Server
de una consulta en el cual yo quiero trar los datos de los proveedores.

Este es mi codigo

SELECT factura, proveedor, costo, fecha
FROM Proveedores
WHERE (fecha >= @fecha1 and fecha <= @fecha2)

Los resultados que me trae esta consulta son erroneos ya que al seleccionar
por ejemplo en los dos campos la fecha de hoy, el reporte no me trae los
datos, me manda un reporte vacio, sabiendo de antemano que tengo datos para
explotar.

He intentado de diversas formas, solucionar este problema, he utilizado un
between y me da el mismo resultado, le he sumado un dia a un parametro y me
acerca pero no me da el resultado exacto, otra cosa que he hecho es añadir un
or en el cual igualo la fecha con la fecha1 y la 2.

Si alguien sabe de otra manera de filtrar fechas, se lo agradeceria
bastante, ya que tengo dias, tratando de resolver esto sin exito.

Gracias.

Preguntas similare

Leer las respuestas

#1 Developers - Dany Acosta
06/09/2006 - 04:03 | Informe spam
La mejor forma es que trabajes las fechas en SQLServer en formato ANSI es decir

declare @fecha1 as char(8)
declare @fecha2 as char(8)
set @fecha1='20060905'
set @fecha2='20060906'

Select Factura,Proveedor,Costo,Fecha
From Proveedores
Where fecha>=@Fecha1 And Fecha<=@fecha2

Ahi te trae todos los registros del dia dia 05-09-2006 Pruebalo



Héctor escribió:
Hola como estan todos, espero que me puedan ayudar con esta situación:

Yo estoy utilizando SQL SERVER 2005 y Visual Basic
2005 , ademas de crystal reports.

El problema que tengo es referente a los resultados que me trae SQL Server
de una consulta en el cual yo quiero trar los datos de los proveedores.

Este es mi codigo

SELECT factura, proveedor, costo, fecha
FROM Proveedores
WHERE (fecha >= @fecha1 and fecha <= @fecha2)

Los resultados que me trae esta consulta son erroneos ya que al seleccionar
por ejemplo en los dos campos la fecha de hoy, el reporte no me trae los
datos, me manda un reporte vacio, sabiendo de antemano que tengo datos para
explotar.

He intentado de diversas formas, solucionar este problema, he utilizado un
between y me da el mismo resultado, le he sumado un dia a un parametro y me
acerca pero no me da el resultado exacto, otra cosa que he hecho es añadir un
or en el cual igualo la fecha con la fecha1 y la 2.

Si alguien sabe de otra manera de filtrar fechas, se lo agradeceria
bastante, ya que tengo dias, tratando de resolver esto sin exito.

Gracias.


Respuesta Responder a este mensaje
#2 Cristhian sosa
06/09/2006 - 15:10 | Informe spam
yo solucione esto asi

WHERE day([FechaReg])= day(@FechaMan) and month([FechaReg])=
month(@FechaMan) and year([FechaReg])= year(@FechaMan)

"Developers - Dany Acosta" wrote:

La mejor forma es que trabajes las fechas en SQLServer en formato ANSI es decir

declare @fecha1 as char(8)
declare @fecha2 as char(8)
set @fecha1='20060905'
set @fecha2='20060906'

Select Factura,Proveedor,Costo,Fecha
From Proveedores
Where fecha>=@Fecha1 And Fecha<=@fecha2

Ahi te trae todos los registros del dia dia 05-09-2006 Pruebalo



Héctor escribió:
> Hola como estan todos, espero que me puedan ayudar con esta situación:
>
> Yo estoy utilizando SQL SERVER 2005 y Visual Basic
> 2005 , ademas de crystal reports.
>
> El problema que tengo es referente a los resultados que me trae SQL Server
> de una consulta en el cual yo quiero trar los datos de los proveedores.
>
> Este es mi codigo
>
> SELECT factura, proveedor, costo, fecha
> FROM Proveedores
> WHERE (fecha >= @fecha1 and fecha <= @fecha2)
>
> Los resultados que me trae esta consulta son erroneos ya que al seleccionar
> por ejemplo en los dos campos la fecha de hoy, el reporte no me trae los
> datos, me manda un reporte vacio, sabiendo de antemano que tengo datos para
> explotar.
>
> He intentado de diversas formas, solucionar este problema, he utilizado un
> between y me da el mismo resultado, le he sumado un dia a un parametro y me
> acerca pero no me da el resultado exacto, otra cosa que he hecho es añadir un
> or en el cual igualo la fecha con la fecha1 y la 2.
>
> Si alguien sabe de otra manera de filtrar fechas, se lo agradeceria
> bastante, ya que tengo dias, tratando de resolver esto sin exito.
>
> Gracias.
>
>

Respuesta Responder a este mensaje
#3 Leonardo Azpurua [mvp vb]
06/09/2006 - 22:37 | Informe spam
"Héctor" escribió en el mensaje
news:
Hola como estan todos, espero que me puedan ayudar con esta situación:

Yo estoy utilizando SQL SERVER 2005 y Visual Basic
2005 , ademas de crystal reports.

El problema que tengo es referente a los resultados que me trae SQL Server
de una consulta en el cual yo quiero trar los datos de los proveedores.

Este es mi codigo

SELECT factura, proveedor, costo, fecha
FROM Proveedores
WHERE (fecha >= @fecha1 and fecha <= @fecha2)

Los resultados que me trae esta consulta son erroneos ya que al
seleccionar
por ejemplo en los dos campos la fecha de hoy, el reporte no me trae los
datos, me manda un reporte vacio, sabiendo de antemano que tengo datos
para
explotar.

He intentado de diversas formas, solucionar este problema, he utilizado
un
between y me da el mismo resultado, le he sumado un dia a un parametro y
me
acerca pero no me da el resultado exacto, otra cosa que he hecho es añadir
un
or en el cual igualo la fecha con la fecha1 y la 2.

Si alguien sabe de otra manera de filtrar fechas, se lo agradeceria
bastante, ya que tengo dias, tratando de resolver esto sin exito.



Hola, Hector:

Nunca he tenido problemas parecidos a los que describes con SQL Server.

Los tuve -con VB.NET- hasta que descubri que los DateTimePicker te devuelven
una fecha que incluye "lo que ves" mas la hora del dia para el momento en
que seleccionaste un valor. Al pasar directamente el valor como argumento
para un SP, éste incluye la hora, es decir, si selecciono el 11-Sep-2006, el
valor producido será 11-Sep-2006 04:21 p.m.

Cuando pido el valor de un DateTimePicker, en el que acabo de seleccionar el
11-Sep-2006, obtengo esto:
11/09/2006 04:31:09 p.m. No hay nada que extrañar, dado que el componente se
llama DateTIMEPicker, pero uno no espera que incluya una hora que uno no ve
por ninguna parte :-)

A menos que elimines la hora de las fechas que vas a guardar en SQL Server,
utilizando la propiedad Date (DTPicker1.Value.Date), cuando pidas en una
consulta que te devuelva los registros cuya fecha esté entre el 11-Sep-2006
y el 11-Sep-2006, no obtendras ningun resultado, ya que 11-Sep-2006 en
realidad es 11-Sep-2006 12:00 am., y los valores que estas almacenando
probablemente sean algunas horas posteriores a las 12:00 am.

Sobre la obtencion de la fecha sin hora:

Dim f As Date = Date.Now
Dim d as Date = f.Date
Console.WriteLine("Fecha: {0}; Fecha y hora: {1}", d, f)
muestra esto:
Fecha: 06/09/2006 12:00:00 a.m.; Fecha y hora: 06/09/2006 04:26:58 p.m.

No se si sea el caso, pero me parece que por ahi van los tiros.

Revisaste los valores que están almacenados en el servidor.


Salud!
Respuesta Responder a este mensaje
#4 Héctor
07/09/2006 - 17:32 | Informe spam
Efectivamente el error estaba en la hora, una disculpa por no haber explicado
bien el problema.

Muchas gracias por su ayuda
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida