Форматы даты SQL Server - DDD - PullRequest
       26

Форматы даты SQL Server - DDD

4 голосов
/ 09 ноября 2009

Как мне получить день недели (в формате DDD, например, понедельник, вторник и т. Д.) В SQL? Я ничего не вижу в документации CAST и CONVERT ..

Ответы [ 6 ]

12 голосов
/ 09 ноября 2009

Много способов сделать это, вот один из способов:

SELECT LEFT(DATENAME(dw, GETDATE()), 3)
3 голосов
/ 09 ноября 2009

Я бы использовал
SELECT CONVERT(CHAR(3),DATENAME(weekday,GETDATE()))
чтобы избежать использования другой функции в SQL, преобразование в CHAR (3) неявно принимает первые 3 символа.

Jonathan

3 голосов
/ 09 ноября 2009

Вы можете использовать метод DATENAME , чтобы извлечь день, а затем использовать SUBSTRING , чтобы взять только первые 3 символа.

SELECT SUBSTRING(DATENAME(DW, '09/11/2009'), 1, 3)
1 голос
/ 10 июня 2014

Для SQL Server 2012 +:

SELECT FORMAT(GETUTCDATE(),'ddd') AS ShortDayName

Это намного чище, чем раствор подстроки. Функцию FORMAT() также можно передать культуре для форматирования с учетом локали.

Обратите внимание, что это работает для других частей даты, таких как месяц:

SELECT FORMAT(GETUTCDATE(),'MMM') AS ShortMonthName

FORMAT () Ссылка

1 голос
/ 09 ноября 2009

Вы не можете DDD из коробки, но вы можете сделать полный день

например.

select datename(weekday,getdate())

возвращает «Понедельник», и вы можете просто взять первые 3 буквы.

1 голос
/ 09 ноября 2009

попробуйте

SELECT DATEPART(DW, '1/1/2009')

Читайте DATEPART здесь

http://msdn.microsoft.com/en-us/library/ms174420.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...