2

我试图在我的 SQL Server 表中插入当前日期。

我的表包括 3 个文件:

CREATE TABLE [dbo].[MyTable] 
(
     [Id]   INT IDENTITY (1, 1) NOT NULL,
     [Name] NVARCHAR (50) NOT NULL,
     [Date] DATE 
         CONSTRAINT [DF_MyTable_Date] DEFAULT (getdate()) NOT NULL,

     CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([Id] ASC)
) 

当一个新用户想在系统中注册时,他只需要输入他的名字。

在我的表格中,ID 是自动生成的,日期也是自动生成的,但显示的是日期01/01/0001而不是当前日期。

错误在哪里?

4

3 回答 3

0

如果您在 C# 中创建一个日期时间变量,例如

变量today_date = new DateTime();

做一个 Console.WriteLine(today_date);你可以看到它打印0001-01-01

所以这是 null 的默认值..

用于DBNull.Value插入SQL NULLfromC#并检查结果

于 2015-05-16T16:45:36.710 回答
0

不需要函数和触发器。只需使用 typeDateDateTimeto设置一列NOT NULL DEFAULT CURRENT_TIMESTAMP

更新了问题中的示例代码:

CREATE TABLE [dbo].[MyTable] 
(
     [Id]   INT IDENTITY (1, 1) NOT NULL,
     [Name] NVARCHAR (50) NOT NULL,
     [Date] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP

     CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([Id] ASC)
)
于 2021-07-14T17:17:21.697 回答
0

在此处输入图像描述

(Your_Date_Column) 将其设为 Null / Not Null 并提供默认值 GetDate() 但仍然无法正常工作。你必须像这样创建一个触发器,

CREATE TRIGGER [dbo].[Trigger_Date] ON [dbo].[TableName] FOR INSERT AS BEGIN

Declare @Id int
set @Id = (select Id from inserted)

Update [dbo].[TableName]
Set Your_Date_Column = GetDate()
Where Id = @Id

结尾

于 2018-08-09T21:11:48.287 回答