我正在尝试在我的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
而不是当天。
错误在哪里?
答案 0 :(得分:0)
如果您在C#中创建日期时间变量,如
var today_date = new DateTime();
并执行Console.WriteLine(today_date);
你可以看到它打印0001-01-01
所以这是默认值null ..
使用DBNull.Value
从SQL NULL
插入C#
并检查结果
答案 1 :(得分:0)
(Your_Date_Column)将其设置为Null / Not Null,并提供默认值GetDate(),但仍然无法使用。您必须创建一个这样的触发器,
创建触发[dbo]。[触发日期]开启[dbo]。[表名]开始插入
if noun2[:1]=='a' or noun2[:1]=='e' or noun2[:1]=='i' or noun2[:1]=='o' or noun2[:1]=='u':
END
答案 2 :(得分:0)
不需要函数和触发器。只需将类型为 Date
或 DateTime
的列设置为 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)
)