#sql #sql-server
#sql #sql-сервер
Вопрос:
К DAYOFTHEWEEK
сожалению, функция не встроена в SQL Server — есть ли какие-либо эквиваленты? Я смог найти только функции, которые предоставляют номер дня (1-31), но не фактическое название дня.
Ответ №1:
SQL Server имеет две функции, в зависимости от того, нужна ли вам строка или число:
[datepart(weekday, col)][1]
[datename(weekday, col)][1]
Вы также можете использовать format()
со 'dddd'
спецификацией:
format(col, 'dddd')
Это удобно, потому 'ddd'
что дает вам трехбуквенную аббревиатуру. И format()
допускает третий аргумент, в котором вы можете указать культуру — например, обеспечить, чтобы значение было на английском языке.
Комментарии:
1. Большое спасибо за ответ, похоже, что именно аргумент «будний день» был тем, чего мне не хватало!
Ответ №2:
используйте datename
вместо datepart
с теми же параметрами, чтобы получить имя вместо номера
Комментарии:
1. Хм, я только что попробовал это, и он вернул значение дня (1-31), а не имя.
Ответ №3:
Ниже должно быть сделано. Параметр должен немного отличаться от datepart
. Используйте W
вместо week
select datename(W, '2020-02-02' )
Комментарии:
1. Хм, я только что попробовал это, и он вернул значение дня (1-31), а не имя.
2. @CluelessBSA Это странно. dbfiddle.uk /…