我想以“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)
);
但它返回错误:
Incorrect syntax near 'FORMAT'.
之后我想使用这个代码:
INSERT INTO APP (ID, DT)
VALUES ('1','22.12.2016')
最佳答案
您不需要在表定义中指定格式,因为日期以二进制格式存储。
CREATE TABLE APP(
ID INT NOT NULL,
DT DATE,
ADDRESS NVARCHAR (100) ,
PRIMARY KEY (ID)
);
但是,当您尝试插入该表时,服务器将尝试在插入之前将字符串转换为日期。这可能会有问题,因为它无法判断 12.11.2017 是 11 月 12 日还是 12 月 11 日。为了解决这个问题,它使用了执行操作的用户帐户的本地化设置。
通常您会发现运行操作的帐户设置为美国格式,月日然后年 (MDY),而您想要的是日月年 (DMY) 格式。告诉它日期部分的顺序的一种方法是使用 DATEFORMAT像这样设置:
SET DATEFORMAT dmy;
INSERT INTO APP (ID, DT)
VALUES (1,'22.12.2016')
另一种选择是使用 CONVERT 将字符串转换为日期。函数并告诉它日期格式是什么。格式有 numeric codes像德语格式的 104 像这样:
INSERT INTO APP (ID, DT)
VALUES (2,CONVERT(date,'22.12.2016',104))
关于SQL:如何在创建表时指定日期格式并填充它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47178740/