Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Error con between

Estas en el tema de Error con between en el foro de PostgreSQL en Foros del Web. Hola señores del foro. Tengo el siguiente inconveniente con una consulta usando between en el siguiente query. select count(usuarios) as campo3 from soporte WHERE sop_fechaini ...
  #1 (permalink)  
Antiguo 02/02/2008, 11:32
Avatar de vpino  
Fecha de Ingreso: diciembre-2004
Ubicación: colombia
Mensajes: 265
Antigüedad: 19 años, 4 meses
Puntos: 0
Error con between

Hola señores del foro.

Tengo el siguiente inconveniente con una consulta usando between en el siguiente query.

select count(usuarios) as campo3 from soporte WHERE
sop_fechaini BETWEEN '01/01/2008' AND '01/02/2008'

Necesito que me arroje los datos desde el 1 de enero de 2008 hasta el 2 de febrero de 2008 pero el resultado que me arroja corresponde a las fecha de dos dias, como si estuviera en formato mm/dd/aaaa.

El campo en la tabla esta definido tipo varchar y los datos de la tabla se ven en formato dd/mm/aaaaa

Sera que en postgres el tipo de dato debe ser date o el formato deber ser aaaa/mm/dd ?

Mil gracias por cualguier ayuda
  #2 (permalink)  
Antiguo 02/02/2008, 15:29
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: Error con between

Buenas, si el campo es de tipo varchar no puede comparar como si fueran fechas directamente.
Lo logico seria definir el campo como fecha, pero tu sabras porque lo tienes asi.

Hazlo asi:
where TO_DATE(sop_fechaini, 'dd/mm/yyyy') BETWEEN TO_DATE('01/01/2008', 'dd/mm/yyyy') and TO_DATE('02/02/2008', 'dd/mm/yyyy');

salu2
  #3 (permalink)  
Antiguo 02/02/2008, 18:21
Avatar de vpino  
Fecha de Ingreso: diciembre-2004
Ubicación: colombia
Mensajes: 265
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Error con between

Seyko. es preciso lo que necesitaba. no sabes cuanto agradezco la ayuda que me acabas de dar.
Yo defini el campo tipo varchar porque no tengo mucho conocimiento en el manejo de fechas y me enrredo facilmente pero con esto veo la necesidad de manejar las cosas como deben ser.

de nuevo mil gracial
  #4 (permalink)  
Antiguo 03/02/2008, 11:12
 
Fecha de Ingreso: enero-2008
Mensajes: 25
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Error con between

Buenas, te hago un pequeño aporte, quizas te sirva mas adelante para no renegar:

cuando utilices los sp, te convendria establecer las fechas de manera adecuada con:

SET DateStyle = European;

o bien en postgresql.conf cambias la linea:

datestyle = 'iso, dmy'

eso te evitara tener que poner:

BETWEEN TO_DATE('01/01/2008', 'dd/mm/yyyy') and TO_DATE('02/02/2008', 'dd/mm/yyyy');

y simplemente usar:

BETWEEN '01/01/2008' and '02/02/2008';

(lo de TO_DATE(sop_fechaini, 'dd/mm/yyyy') es claro que no, ya que es tipo varchar)

salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:12.