【发布时间】:2015-07-28 09:41:26
【问题描述】:
我正在尝试在我的 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 而不是当天。
错在哪里?
【问题讨论】:
-
您必须向其发送
new DateTime()。使您的日期变量可以为空 (DateTime?) 并确保其值为空。 -
如果我在 DATE 变量中输入 Null,当我点击“查看数据”时,我会得到一个 NULL 而不是当前日期。
-
我不知道“查看数据”是什么,也不知道它是如何实现的。我在我的 sql server 中创建了你的表并发出了这个查询并成功地得到了今天的日期。问题出在您未显示的 .net 代码中。
insert into MyTable (name) values ('foobar'); -
只有在您不在插入中指定该列时才会使用您的默认值,例如如果你有
INSERT INTO dbo.MyTable(Name) VALUES(N'xxxxxx');- 如果你指定列并传入一个值(甚至NULL),那么你的默认将不会被使用。 -
问题出在你的 C# 代码,而不是你的 SQL。编辑您的问题并显示您用于插入的 C# 代码。
标签: c# sql-server asp.net-mvc date aspnetdb