我有一个收集从我们网站提交的表单的表格,但由于某种原因,当他们创建表格时,他们没有在表格中添加时间戳。我想让它输入输入记录的确切日期和时间。
我知道它在那里的某个地方,但我似乎找不到如何设置默认值(就像在访问中,你使用getNow()或Now()),但我不知道把它放在哪里。
我有一个收集从我们网站提交的表单的表格,但由于某种原因,当他们创建表格时,他们没有在表格中添加时间戳。我想让它输入输入记录的确切日期和时间。
我知道它在那里的某个地方,但我似乎找不到如何设置默认值(就像在访问中,你使用getNow()或Now()),但我不知道把它放在哪里。
当前回答
为了便于理解,我总结一下上面的答案:
假设这个表名为Customer 它有4列/少或多…
你想要向表中添加一个新列,每次当有insert…然后,这一栏记录了事件发生的时间。
解决方案:
向数据类型为datetime的表中添加一个新列,假设timepurchase是新列。
然后执行如下alter命令:
ALTER TABLE Customer ADD CONSTRAINT DF_Customer DEFAULT GETDATE() FOR timePurchase
其他回答
创建新表时的语法是:
CREATE TABLE MyTable
(
MYTableID INT IDENTITY(1,1),
CreateDate DATETIME NOT NULL CONSTRAINT DF_MyTable_CreateDate_GETDATE DEFAULT GETDATE()
)
这也可以通过SSMS GUI来完成。
将您的表放入设计视图(在对象资源管理器中右键单击表-> design) 向表中添加一个列(如果已经存在,则单击要更新的列) 在“列属性”中输入“默认值”或“(getdate())” 绑定字段如下图所示
这对我很管用。我使用SQL开发与Oracle DB:
ALTER TABLE YOUR_TABLE
ADD Date_Created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
在SQL Server中的该表中,指定该列的默认值为CURRENT_TIMESTAMP。 该列的数据类型可以是datetime或datetime2。
e.g.
Create Table Student
(
Name varchar(50),
DateOfAddmission datetime default CURRENT_TIMESTAMP
);
禁止在列上设置空值,并在getdate()列上设置默认值
/*Deal with any existing NULLs*/
UPDATE YourTable SET created_date=GETDATE() /*Or some sentinel value
'19000101' maybe?*/
WHERE created_date IS NULL
/*Disallow NULLs*/
ALTER TABLE YourTable ALTER COLUMN created_date DATE NOT NULL
/*Add default constraint*/
ALTER TABLE YourTable ADD CONSTRAINT
DF_YourTable_created_date DEFAULT GETDATE() FOR created_date