Обновление
Если у вас есть значение типа Date
, чтобы получить формат dd-MMM-yy
, вы также можете использовать комбинацию convert
и replace
:
DECLARE @Date as datetime = GETDATE();
SELECT @Date As Original,
REPLACE(CONVERT(char(9), @Date, 6), ' ', '-') As Result
Будет возвращено:
Original Result
01.05.2018 08:08:29 01-May-18
Примечание: Я обновил свой ответ из-за изменения желаемого формата результата с mmddyyy
на ddmmyy
- Все, что я изменил, это стиль конвертации - от 1 до 3.
Исходный ответ
Если исходное значение имеет тип DateTime
, оно не имеетотображаемое значение.Все, что вам нужно использовать, это convert
и replace
:
DECLARE @Date as datetime = GETDATE();
SELECT @Date As Original,
REPLACE(CONVERT(char(8), @Date, 3), '/', '') As Result
Original Result
26.04.2018 06:56:19 042618
Если ваше исходное значение является строковым типом, вы сначала конвертируете его в datetime
, а затем преобразовать обратно в строку с желаемым форматом отображения:
DECLARE @StringDate as char(23) = '2018-04-26 07:55:43.003'
SELECT @StringDate As Original,
REPLACE(CONVERT(char(8), CONVERT(datetime, @StringDate, 120), 3), '/', '') As Result
Original Result
2018-04-26 07:55:43.003 042618
В Sql Server 2012 или более поздней версии вы можете использовать Format
для преобразования datetime
в любое желаемое строковое представление, ноFormat
медленнее, чем convert
и replace
, поэтому, если вы используете его на большом столе, вам следует подумать об использовании старого доброго convert
.
Для получения дополнительной информации прочитайте Аарона Бертранда.ФОРМАТ () хорош и все, но…