Как получить вторую среду месяца - PullRequest
0 голосов
/ 07 сентября 2018

Мне нужно знать, является ли current_date второй средой месяца с PostgreSQL.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

извлеките номер дня недели и номер дня месяца, затем сравните с 3, поскольку каждый день среды будет 3, а 2-й день среды месяца - больше 8 и меньше 13, а затем используйте случай, когда

select case when extract(dow from  now())=3 and
  EXTRACT(DAY FROM  now())>7 and EXTRACT(DAY FROM  now())<=13
  then 'it is 2nd wednesday' else 'not';
0 голосов
/ 07 сентября 2018

Вы можете использовать EXTRACT, чтобы найти день недели и сравнить его со средой (3-й день недели), а затем также проверить, что день месяца находится между 8-м и 14-м (включительно), что сделает это вторая среда:

select extract(dow from current_date) = 3 and
       extract(day from current_date) between 8 and 14;

Выход (сегодня, 7 сентября 2018 г.)

false

Еще один пример, демонстрирующий его работу:

select extract(dow from timestamp '2018-09-12') = 3 and
       extract(day from timestamp '2018-09-12') between 8 and 14;

выход

true
...