我有一个收集从我们网站提交的表单的表格,但由于某种原因,当他们创建表格时,他们没有在表格中添加时间戳。我想让它输入输入记录的确切日期和时间。
我知道它在那里的某个地方,但我似乎找不到如何设置默认值(就像在访问中,你使用getNow()或Now()),但我不知道把它放在哪里。
我有一个收集从我们网站提交的表单的表格,但由于某种原因,当他们创建表格时,他们没有在表格中添加时间戳。我想让它输入输入记录的确切日期和时间。
我知道它在那里的某个地方,但我似乎找不到如何设置默认值(就像在访问中,你使用getNow()或Now()),但我不知道把它放在哪里。
当前回答
这对我很有用……
ALTER TABLE [accounts]
ADD [user_registered] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ;
其他回答
这对我很有用……
ALTER TABLE [accounts]
ADD [user_registered] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ;
而标记的答案是正确的:
为你的列添加默认的GETDATE()约束
在向列中添加默认datetime值时,应始终注意时区。
例如,这个datetime值被设计用来指示一个成员何时加入一个网站,而你希望它被显示回给用户,GETDATE()将给你服务器时间,因此可以显示差异,如果用户在不同的地区服务器。
如果你希望处理国际用户,在某些情况下最好使用GETUTCDATE(),它:
返回当前数据库系统时间戳为datetime值。数据库时区偏移不包括在内。该值表示当前UTC时间(协调世界时)。此值来自运行SQL Server实例的计算机的操作系统。
ALTER TABLE YourTable ADD CONSTRAINT DF_YourTable DEFAULT GETUTCDATE() FOR YourColumn
在检索值时,前端应用程序/网站应该将该值从UTC时间转换为请求它的用户的地区/文化。
在SQLPlus中,当创建一个表时,它就像as
SQL>创建表Test
( Test_ID number not null,
Test_Date date default sysdate not null );
SQL> insert into Test(id) values (1);
Test_ID Test_Date
1 08-MAR-19
这对我很管用。我使用SQL开发与Oracle DB:
ALTER TABLE YOUR_TABLE
ADD Date_Created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
修改现有表中的现有列:
ALTER TABLE YourTable ADD CONSTRAINT DF_YourTable DEFAULT GETDATE() FOR YourColumn