我在数据库中有三个表。我在所有这些文件中都有Operation_Date列。我将列默认值设置为(GETDATE()),它的数据类型是VARCHAR(50),并且在我的C# Windows应用程序中没有任何代码来向Operation_Date插入值。
问题:当我在表格中插入行时,operation_Date会像这样用空格分隔月份、日期和年份(2020年5月2日)。我在一个月后得到两个空间,在几天后得到一个空间。
我试图在SQL Server上进行查询以进行插入,但同样的问题也出现了。我尝试将数据类型更改为datetime,但没有成功。
注:此问题仅在两个表中出现。我很确定这三个表有相同的设置。
有没有办法强制SQL Server中的默认值采用特定的日期格式?是什么导致了这个问题呢?
这是我使用的查询:
USE [EasyManagementSystem]
INSERT INTO [dbo].[Attendance] ([Employee_No], [Present], [Leave], [Othe_Leave], [Month], [Year])
VALUES ('l-8068', 30, 0, 0, 'MAY', 2020)发布于 2020-05-03 00:07:41
哈?为什么要将日期存储为字符串。这是错误的。有一种非常好的日期数据类型,称为date。
如果你想在输入时设置它,那么只需要给它一个默认值。您创建的表应该如下所示:
create attendance (
. . .
operation_date date default getdate()
);瞧!它会正常工作的。如果需要月份或年份,可以使用month()和year()函数。
https://stackoverflow.com/questions/61562363
复制相似问题