Как преобразовать полученное число из datepart в название дня?

Есть ли быстрый однострочный вызов для вызова datepart в Sql Server и вернуть название дня вместо просто числа?

select datepart(dw, getdate());

Это вернет 1-7, при этом воскресенье будет 1. Я бы хотел «воскресенье» вместо 1.

Ответов (4)

Решение
select datename(weekday, getdate());

На самом деле мне потребовалось больше поисков, чем я ожидал, чтобы найти этот ответ. Забавно, что вы можете использовать технологию целую вечность и никогда не знать о таких простых функциях, как эта.

select datename(dw,  getdate())

Я не уверен, как локализация будет работать с этой функцией. Получение имени на стороне клиента, вероятно, является ответом, но было бы неплохо сделать это в базе данных. Будет ли Sql Server использовать параметр сопоставления для определения вывода для этого?

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

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