Проблемы при сравнении to_char (timestamp, 'day') = 'monday' - PullRequest
1 голос
/ 28 марта 2020

В базе данных PostgreSQL я получил табличный платеж со столбцом payment_date типа timestamp. Моя цель - подсчитать платежи, сделанные в понедельник. Следующий запрос:

SELECT TO_CHAR(payment_date, 'day') FROM payment;

дает такой результат, как:

thursday 
friday   
friday   
monday   
tuesday  

Однако, когда я пытаюсь считать понедельники, как это:

SELECT COUNT(*) FROM payment
WHERE TO_CHAR(payment_date, 'day') = 'monday';

результат равен 0 хотя предыдущий запрос показывает, что он должен быть больше 0. Что не так со вторым запросом?

1 Ответ

1 голос
/ 28 марта 2020

Postgres docs говорит, что "полное название дня в нижнем регистре (с пробелами в 9 символов)"

Может ли этот выбор решить проблему? Если есть пробелы, возможно, ваше сравнение не удалось.

SELECT COUNT(*) 
FROM payment 
WHERE RTRIM(TO_CHAR(payment_date, 'day')) = 'monday';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...