GETDATE() 插入空格 SQL 服务器

GETDATE() insert with spaces SQL Server

我在数据库中有三个表。我在所有这些中都有 Operation_Date 列。我将列默认值设置为 (GETDATE()),其数据类型为 VARCHAR(50) 并且我的 C# Windows 应用程序中没有任何编码将值插入 Operation_Date ].

问题:当我向表中插入行时,operation_Date 像这样(2020 年 5 月 2 日)用 space 分隔月、日和年。我在一个月后得到两个 space,在几天后得到一个 space。

我试图在 SQL 服务器上进行查询以插入,但出现了同样的问题。我尝试将数据类型更改为日期时间但没有成功。

注意:此问题仅出现在两个表中。而且我很确定这三个表具有相同的设置。

在 SQL 服务器中是否有强制默认值的特定日期格式?什么会导致这个问题发生?

这是我使用的查询:

USE [EasyManagementSystem]

INSERT INTO [dbo].[Attendance] ([Employee_No], [Present], [Leave], [Othe_Leave], [Month], [Year])
VALUES ('l-8068', 30, 0, 0, 'MAY', 2020)

嗯?为什么要将日期存储为字符串。那是错误的。有一个非常好的日期数据类型,称为 date.

如果你想在输入时设置它,那么只需给它一个默认值。您的 table 创作应如下所示:

create attendance (
    . . .
    operation_date date default getdate()
);

瞧!它会起作用的。如果需要月份或年份,可以使用 month()year() 函数。