Конвертирование даты формата 2025-01-13 18:42:23.000 в 27 февр. 2025

Подскажите возможно конвертировать дату формата "2025-01-13 18:42:23.000" в формат " 27 февр. 2025". Знаю что есть CONVERT, но он не подходит.

CONVERT(varchar, crs.start_date, 104) AS start_ad

В JS я делаю так:

function convertToDateTask(date) {
    const assembler = new Date(date);
    var day = assembler.getDate();
    var monthName = assembler.toLocaleString('default', { month: 'short' });
    var year = assembler.getFullYear();
    return day + ' ' + monthName + ' ' + year;
};


Ответы (1 шт):

Автор решения: Dev18

вот так например можно

SELECT FORMAT(CONVERT(datetime, '2025-01-13 18:42:23.000'), 'dd MMM yyyy', 'ru-RU') 
       AS formatted_date;

результат: 13 янв 2025

а если надо с точкой, то так

DECLARE @start_date datetime = '2025-01-13 18:42:23.000';

SELECT CONVERT(varchar, DAY(@start_date)) + ' ' +
       CASE MONTH(@start_date)
            WHEN 1 THEN 'янв.'
            WHEN 2 THEN 'февр.'
            WHEN 3 THEN 'мар.'
            WHEN 4 THEN 'апр.'
            WHEN 5 THEN 'мая'
            WHEN 6 THEN 'июня'
            WHEN 7 THEN 'июля'
            WHEN 8 THEN 'авг.'
            WHEN 9 THEN 'сент.'
            WHEN 10 THEN 'окт.'
            WHEN 11 THEN 'нояб.'
            WHEN 12 THEN 'дек.'
       END + ' ' +
       CONVERT(varchar, YEAR(@start_date)) AS formatted_date_with_point;

результат: 13 янв. 2025

→ Ссылка