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

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

select datepart(dw, getdate());

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


person Eric Z Beard    schedule 15.08.2008    source источник


Ответы (3)


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

select datename(dw,  getdate())

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

person Eric Z Beard    schedule 15.08.2008

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

person Andrew Grant    schedule 15.08.2008

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

person Lars Mæhlum    schedule 15.08.2008