Получите дни недели в Postgresql

Вопрос:Был попыток выяснить выбор запроса для отображения дней недели, таких как понедельник, вторник, среда и т.д. В итоге у меня появился запрос выбора, показывающий даты недели, select ((date_trunc('week',current_date)::date) + (i+6)) as week_date from generate_Series(0,6) i; Есть ли способ получить результат в понедельник, вторник и т.д. Лучший ответ: Вы можете сделать только: VALUES ('Sunday'), ('Monday'), ('Tuesday'),

Вопрос:

Был попыток выяснить выбор запроса для отображения дней недели, таких как понедельник, вторник, среда и т.д. В итоге у меня появился запрос выбора, показывающий даты недели,

select ((date_trunc(‘week’,current_date)::date) + (i+6)) as week_date from generate_Series(0,6) i;

Есть ли способ получить результат в понедельник, вторник и т.д.

Лучший ответ:

Вы можете сделать только:

VALUES (‘Sunday’), (‘Monday’), (‘Tuesday’), (‘Wednesday’), (‘Thursday’), (‘Friday’), (‘Saturday’); Ответ №1

Просто используйте extract:

extract(dow from date_column::timestamp) from whatever_table;

Это возвращает 0 для воскресенья, 1 для понедельника,…, 6 для субботы.

Изменить: Или, поскольку вам, очевидно, не нужно ничего, что на самом деле требует захвата дня недели с определенной даты, и вам просто нужен один столбец с фиксированными строковыми значениями, представляющими имена дни недели, просто создайте таблицу…

Ответ №2

В Postgres 9 и далее есть:

to_char(date, ‘dy’);

который вернет вашу дату в день недели в виде текстового значения

Ответ №3

Следующий запрос также работает

select to_char((date_trunc(‘week’,current_date)::date) + i,’Day’) as wkday from generate_series(0,6) i Ответ №4

создает массив из одного поля, которое вы удаляете

select day_of_week from unnest( array [‘Sunday’, ‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’] ) as day_of_week Ответ №5

Вы также можете использовать эти параметры в зависимости от своих потребностей.

сокращенное название дня в верхнем регистре (3 буквы на английском языке, длина может быть разной)

SELECT TO_CHAR(CURRENT_TIMESTAMP, ‘DY’)

сокращенное название дня с заглавной буквы (3 буквы на английском языке, длина может быть разной)

SELECT TO_CHAR(CURRENT_TIMESTAMP, ‘Dy’)

сокращенное название дня в нижнем регистре (3 буквы на английском языке, длина может быть разной)

SELECT TO_CHAR(CURRENT_TIMESTAMP, ‘dy’)

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

SELECT TO_CHAR(CURRENT_TIMESTAMP, ‘day’)

полное заглавное название дня (с пробелами до 9 символов)

SELECT TO_CHAR(CURRENT_TIMESTAMP, ‘Day’)

полное название дня в верхнем регистре (с пробелами до 9 символов)

SELECT TO_CHAR(CURRENT_TIMESTAMP, ‘DAY’)

Ссылка ссылка

Оцените статью
Добавить комментарий