繁体   English   中英

我的“数据默认值(getdate())”,它不起作用

[英]My “data default (getdate())”, it doesn't work

我正在尝试在我的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而不是当前日期。

错误在哪里?

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

var today_date = new DateTime();

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

因此,这是默认值null。

使用DBNull.ValueC#插入SQL NULL并检查结果

在此处输入图片说明

(Your_Date_Column)将其设置为Null / Not Null,并提供默认值GetDate(),但仍然无法使用。 您必须创建一个这样的触发器,

创建触发[dbo]。[触发日期]开启[dbo]。[表名]开始插入

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

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

结束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM