Извлечение номера месяца и преобразование его в название месяца в SQL Server - PullRequest
0 голосов
/ 24 октября 2019

Я наткнулся на SQL-запрос:

select IssuedDate, Convert(char(4), IssuedDate, 0)
from TempTable

, и вот его вывод:

           IssuedDate            Null
    ----------------------------------
    1964-02-17 00:00:00.0000000  Feb 
    2018-08-28 00:00:00.0000000  Aug 
    2018-08-28 00:00:00.0000000  Aug 
    2018-08-28 00:00:00.0000000  Aug 

Может кто-нибудь, пожалуйста, дайте мне знать, как работает и конвертируется функция convertномер месяца к названию месяца?

1 Ответ

1 голос
/ 24 октября 2019

Используется формат по умолчанию для преобразования (третий аргумент - 0), который является "mon dd yyyy чч: miAM". То есть первые три символа в отформатированной строке являются сокращением месяца.

Преобразование выполняется в строку длиной четыре, в которой сохраняются только первые четыре символа. Это будет аббревиатура месяца и следующий символ.

На мой взгляд, более разумный подход будет выглядеть так:

left(datename(month, issueddate), 3)

Это, по крайней мере, работает для английского языка, где аббревиатуры месяца - этопервые символы названия месяца.

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