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

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

select datepart(dw, getdate());

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

15.08.2008 17:47:28
4 ОТВЕТА
РЕШЕНИЕ
select datename(weekday, getdate());
12
15.08.2008 17:54:22

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

0
15.08.2008 17:50:32

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

0
15.08.2008 17:52:04

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

select datename(dw,  getdate())

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

1
15.08.2008 17:54:26