Что не так в SQL

Что не так в SQL

CONCAT(title, ', from ', CONVERT(DATETIME,CONVERT(NVARCHAR,startdate,107)), ' to ', CONVERT(DATETIME,CONVERT(NVARCHAR,end_date,107)), ' (', duration , ')')

Я хочу изменить дату и время на формат 25 сентября 2018 года

2 ответа

SELECT LEFT(DATENAME(MONTH, GETDATE()), 3) + ' ' + cast(datepart(dd, getdate()) as varchar) + ', ' + cast(datepart(yyyy, getdate()) as varchar)

или же

select convert(nvarchar,getdate(),107)

Вопрос несколько неясен, я думаю, что ваша проблема заключается в том, что вы конвертируете дату в nvarchar, используя формат 107, который является правильным для того, что вы опубликовали, что вы хотите сделать. Затем вы конвертируете его обратно в дату и время, что возвращает его к настройкам по умолчанию для даты.

Поэтому я думаю, что вам просто нужно упростить это до:

CONCAT(title, ', from ',CONVERT(NVARCHAR,startdate,107), ' to ',CONVERT(NVARCHAR,end_date,107), ' (', duration , ')')

Оригинал:

select convert(datetime,convert(nvarchar,getdate(),107));

Возвращает (это основано на локальных настройках, поэтому для SQL Server, который я использовал, он возвращает это):

2018-08-30 00:00:00.000

Меньше конверсионного кода:

select convert(nvarchar,getdate(),107);

Возвращает:

Aug 30, 2018
Другие вопросы по тегам