PostgreSQL - como mostrar dias de la semana??

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 4 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

como mostrar dias de la semana??

Publicado por daniela (1 intervención) el 03/06/2018 02:52:58
"Cantidad total gastada por clientes en compras realizadas un día martes"

Mi consulta es la siguiente:

1
2
3
4
SELECT SUM(oi.order_item_subtotal), TO_TIMESTAMP(o.order_date/1000) FROM orders o, order_items oi WHERE
oi.order_item_order_id = o.order_id
 
GROUP BY TO_TIMESTAMP(o.order_date/1000)

Pero me arroja año,mes,dia y la zona horaria. Lo que deseo es que me muestre los dias de la semana en la que esa fecha cae. Se entiende? Que debo agregar? HELP!!!


GRACIAS
Captura-de-pantalla-2018-06-02-a-las-20.49.19
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

como mostrar dias de la semana??

Publicado por YYanes (20 intervenciones) el 13/07/2018 22:02:26
Hola amiga Daniela!

Para lo que usted necesita podría auxiliarse de las funciones date_part y EXTRACT:

-La función "date_part" le permite extraer una parte específica dentro de una fecha, por ejemplo:

SELECT date_part('month', current_date); ----- devuelve el mes presente.

SELECT date_part('day', current_date); ----- devuelve el día presente.

- También funcionaría con la función EXTRACT:
SELECT EXTRACT(DAY FROM TIMESTAMP '2018-07-13'); --- devolvería 13

Ahora bien: para preguntar por el día de la semana lo que se pone es DOW (iniciales de "Day Of Week"), por ejemplo:
SELECT EXTRACT(DAY FROM TIMESTAMP '2018-07-13'); --- devolvería 5 (el día de la semana en valor numérico).


Finalmente, su consulta con WHERE podría ser la siguiente:

SELECT SUM(oi.order_item_subtotal), TO_TIMESTAMP(o.order_date/1000) FROM orders o, order_items oi

WHERE EXTRACT(DAY FROM TO_TIMESTAMP(o.order_date/1000)) = 2

GROUP BY TO_TIMESTAMP(o.order_date/1000)


En todo caso lo que necesita es extraer el día de la semana y compararlo con 2 (martes).

Espero resuelva su problema. Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar