2016-12-03 96 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