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

Quitar hora a fecha timestamp como en mysql con date_format

Estas en el tema de Quitar hora a fecha timestamp como en mysql con date_format en el foro de PostgreSQL en Foros del Web. Hola a todos, tengo un campo tipo timestamp, necesito quitarle la hora a este campo para hacer la comparacion con la fecha actual asi como ...
  #1 (permalink)  
Antiguo 15/07/2010, 15:25
 
Fecha de Ingreso: junio-2010
Ubicación: Manizales
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 1
Quitar hora a fecha timestamp como en mysql con date_format

Hola a todos, tengo un campo tipo timestamp, necesito quitarle la hora a este campo para hacer la comparacion con la fecha actual asi como se hace en mysql con date_format, si me pueden ayudar lo agadeceria.
Saludos.
  #2 (permalink)  
Antiguo 15/07/2010, 16:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

tatip

Debes castear el campo timestamp a date para que solo tome la fecha y no la hora.
Código SQL:
Ver original
  1. postgres=> SELECT NOW();
  2.             now
  3. ---------------------------
  4.  2010-07-15 17:07:53.89-05
  5. (1 fila)
  6.  
  7. postgres=> SELECT NOW()::DATE;
  8.     now
  9. ------------
  10.  2010-07-15
  11. (1 fila)

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 15/07/2010, 16:19
 
Fecha de Ingreso: junio-2010
Ubicación: Manizales
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Hola, gracias por responder, mira la consulta es la siguiente:

SELECT cal_id, to_timestamp(datetime) as fecha_inicial,
to_timestamp(edatetime) as fecha_final,
title, description
FROM phpgw_cal
WHERE cal_type = 'E'
AND datetime::DATE => aqui es donde debo poner el campo que necesito quitarle la hora?
AND cal_id IN (
SELECT cal_id FROM phpgw_cal_user WHERE cal_login = 1003 )
  #4 (permalink)  
Antiguo 15/07/2010, 23:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Estoy un poco enredado.
Veo que utilizas to_timestamp en el campo datetime. Acaso que tipo de dato tiene datetime?
Lo que tienes en rojo sería:

Código SQL:
Ver original
  1. AND datetime::DATE ='2010-07-15'

si sigues con problemas, postea la estructura de la tabla y algunos registros de prueba y la salida que esperarias tener.

bye tati
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 16/07/2010, 06:56
 
Fecha de Ingreso: junio-2010
Ubicación: Manizales
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Hola, me equivoque el campo se llama datetime pero es de tipo bigint, le hago el to_timestamp para mostrar la fecha con la hora de la reunion pero en el where no puedo comparar con la hora porq solo me mostraria lo que pase solo a esa hora exacta y no lo del dia, hize esto, no saca nada pero tampoco error:

SELECT cal_id, to_timestamp(datetime) as fecha_inicial,
to_timestamp(edatetime) as fecha_final,
title, description
FROM phpgw_cal
WHERE cal_type = 'E'
AND to_timestamp(datetime)::DATE= CURRENT_DATE
AND cal_id IN (
SELECT cal_id FROM phpgw_cal_user WHERE cal_login = 1003 )

  #6 (permalink)  
Antiguo 16/07/2010, 07:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Tatip entre mas detalles des del problema, mas facil es llegar a una solución.

Según entiendo, tienes en un campo bigint una fecha en formato unix_timestamp que equivale a un numero similar a este 1284352323.
Al utilizar timestamp quedaría:
Código SQL:
Ver original
  1. postgres=> SELECT to_timestamp(1284352323);
  2.       to_timestamp
  3. ------------------------
  4.  2010-09-12 23:32:03-05
  5. (1 fila)

Al requerir unicamente la fecha y no la hora de este campo, lo que haces en tu consulta anterior es correcto.

Código SQL:
Ver original
  1. postgres=> SELECT to_timestamp(1284352323)::DATE;
  2.  to_timestamp
  3. --------------
  4.  2010-09-12
  5. (1 fila)

Si lo que digo es cierto, el que no te muestre registros, se puede dar por otra de las condiciones que tienes en el where y no por esta que al parecer ya se encuentra bien.

Una buena forma de probar consultas, es quitando condiciones y detectando que condición es la que te puede estar generando la ausencia de datos.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 16/07/2010, 07:41
 
Fecha de Ingreso: junio-2010
Ubicación: Manizales
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Gracias por tus respuestas tan rapidas, si ya lo solucione, ya muestra lo que necesito, gracias.
  #8 (permalink)  
Antiguo 04/08/2010, 10:46
 
Fecha de Ingreso: junio-2010
Ubicación: Manizales
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Hola, de nuevo yo con mis preguntas, necesito quitarle los segundos a una fecha, el campo es tipo time, al hacer una consulta para conocer la hora en q se realizo un registro me saca la hora de esta manera 11:45:47.08001 ynecesio quitarle esta parte 11:45:47.08001, he buscado en las funciones de postgres pero no lo encuentro , si depronto alguien sabe lo agradeceria.
Saludos
  #9 (permalink)  
Antiguo 04/08/2010, 10:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Puedes utilizar TO_CHAR
Código SQL:
Ver original
  1. postgres=> \c pruebas
  2. Ahora estß conectado a la base de datos ½pruebas╗.
  3. pruebas=> CREATE TABLE tiempo(hora TIME);
  4. CREATE TABLE
  5. pruebas=> INSERT INTO tiempo VALUES(NOW());
  6. INSERT 0 1
  7. pruebas=> SELECT *FROM tiempo;
  8.      hora
  9. --------------
  10.  11:53:16.875
  11. (1 fila)
  12.  
  13. pruebas=> SELECT TO_CHAR(hora,'HH:MI') AS hora FROM tiempo;
  14.  hora
  15. -------
  16.  11:53
  17. (1 fila)


saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #10 (permalink)  
Antiguo 04/08/2010, 13:04
 
Fecha de Ingreso: junio-2010
Ubicación: Manizales
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Quitar hora a fecha timestamp como en mysql con date_format

Gracias, me sirvio perfecto.

Etiquetas: mysql, quitar, timestamp, fechas
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 03:59.