SELECT COUNT(*) FROM payment WHERE(TO_CHAR(payment_date, 'Day')) = 'Monday'TO_CHAR(payment_date, 'Day') devuelve una cadena rellenada con espacios ( 'Monday ' ).
Para suprimir los espacios, use el modificador FM ("modo de relleno")
SELECT COUNT(*) FROM payment WHERE (TO_CHAR(payment_date, 'FMDay')) = 'Monday' alternativamente, sea explícito y use trim()
SELECT COUNT(*) FROM payment WHERE (trim(TO_CHAR(payment_date, 'Day'))) = 'Monday'Sin embargo, recomendaría no usar valores específicos de la configuración regional (en mi computadora, lo anterior siempre devolvería 0 porque tengo una configuración de idioma diferente).
Usar números, por ejemplo, con extract(isodow from ..) es mucho más confiable.
Use dow (día de la semana).
El día de la semana (0 - 6; el domingo es 0) (solo para valores de marca de tiempo)
SELECCIONE CONTEO(*) DESDE el pago WHERE EXTRACTO(DOW DE fecha_pago)= 1;
Para obtener más detalles sobre el dow , consulte la documentación .
SELECT COUNT(*) AS day_of_payment FROM payment WHERE TO_CHAR (payment_date,'DAY') = 'MONDAY 'Teniendo en cuenta que "espacio en blanco rellenado a 9 caracteres", lo que significa que en lugar de devolver 'lunes', devuelve 'lunes' con espacios adicionales para llenar al menos 9 espacios.