我想以“dd.mm.yyyy”格式保存日期。所以我读到 SQL 中有不同的日期格式(顺便说一下我使用 Visual Studio 和 SQL Server)。
我试过这段代码:
CREATE TABLE APP(
ID INT NOT NULL,
DT DATE FORMAT 'dd.mm.yyyy',
ADDRESS NVARCHAR (100) ,
PRIMARY KEY (ID)
);
但它返回错误:
‘FORMAT’ 附近的语法不正确。
之后我想使用这段代码:
INSERT INTO APP (ID, DT)
VALUES ('1','22.12.2016')
原文由 Mikhail_Sam 发布,翻译遵循 CC BY-SA 4.0 许可协议
您无需在表定义中指定格式,因为日期以二进制格式存储。
但是,当您尝试插入该表时,服务器将尝试在插入之前将字符串转换为日期。这可能会有问题,因为它无法判断 12.11.2017 是 11 月 12 日还是 12 月 11 日。为了解决这个问题,它使用正在执行操作的用户帐户的本地化设置。
通常您会发现运行该操作的帐户设置为美国格式,月日然后年 (MDY),而您想要的是日月年 (DMY) 格式。告诉它日期部分的顺序的一种方法是使用 DATEFORMAT 设置,如下所示:
另一种选择是使用 CONVERT 函数将字符串转换为日期,并告诉它日期格式是什么。这些格式具有 数字代码,例如德语格式的 104 如下所示: