2016-12-03 3 views
0

Кто-нибудь знает правильный синтаксис для этого формата: dd-mmm-yyyy. Например. 04-DEC-2016SQL Server - установить формат даты при вставке

Basic Вставка

INSERT INTO GoodTbl (GoodID, GoodDate)VALUES (7,'12-04-2016') 

Я сделал это, и она работала

INSERT INTO GoodTbl (GoodID, GoodDate)VALUES (7,(CONVERT(DATETIME,'12-04-2016', 105))); 

но 106 является правильным кодом. Однако использование 106 (как показано) не работает.

INSERT INTO GoodTbl (GoodID, GoodDate)VALUES (7,(CONVERT(DATETIME,'12-04-2016', 106))); 

Есть ли другой способ написать это?

+0

Но 105 является правильным. 106 для 'dd mon yyyy', например' 04 jul 2016' ... –

+0

Является ли GoodDate поле даты или строки/varchar? –

+0

Я думаю, что форматирование - это ответственность вашего кода пользовательского интерфейса. Например, в формате .NET форматирование будет намного проще: 'date.ToString (" dd-mmm-yyyy ")'. – Fabio

ответ

1

Если 2012+ вы можете использовать формат()

Select Format(GetDate(),'dd-MMM-yyyy') 

Возвращает

03-Dec-2016 

Другой вариант

Select Replace(convert(varchar(25),GetDate(),106),' ','-') 

Вы понимаете, что эти преобразования являются строки, так что я если поле назначения является строкой/varchar Используйте VARCHAR вместо DateTime, тогда fo llowing:

INSERT INTO GoodTbl (GoodID, GoodDate) 
VALUES (7,Replace(convert(varchar(25),cast('2016-12-04' as date),106),' ','-')) 
+0

Спасибо. Цель состоит в том, чтобы показать дату, подобную этой '04 -DEC-2016 '. И из того, что я вижу, 106 - это код для него. Тем не менее, синакс, который я использовал, не работает – Koda

+0

@ Koda Неполадка вопрос, см. Обновленный. –

+0

Спасибо @John Cappelleti. Итак, что, если дата '04 -Jun-2016 ', я вставляю значение даты в скобку? Мне нравится (04-06-2016) – Koda

Смежные вопросы