2016-12-03 89 views
0

有沒有人知道此格式的正確語法:dd-mmm-yyyy。例如。 04-DEC-2016SQL Server - 在插入時設置日期格式

基本插入

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

我認爲格式化是您的UI代碼的責任。例如,在.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如下:

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

謝謝。目標是顯示像'04 -DEC-2016'這樣的日期。從我所能看到的106是它的代碼。但是,我使用的synax不起作用 – Koda

+0

@Koda錯誤的問題,看到更新。 –

+0

謝謝@John Cappelleti。那麼,如果日期是'04 -Jun-2016',我會在日期中插入日期值嗎? Like(04-06-2016) – Koda