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()
函数。
我在数据库中有三个表。我在所有这些中都有 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()
函数。