datetime2的默认值是什么?
编辑:对不起也许我解释错了,我试图插入getDate()并保存这个值。
我需要知道我的ssms
的这个字段(红色)的值是多少
答案 0 :(得分:0)
除非另行指定,否则SQL Server中的所有内容都具有默认值 NULL
。例如DECLARE @MyDate datetime2(0);
:@MyDate
的值为 NULL
。
至于表:
CREATE TABLE #Sample (MyDate datetime2(0),
MyDate2 datetime2(0) DEFAULT GETDATE(),
MyDate3 datetime2(0) DEFAULT '20000101');
列MyDate
的默认值为 NULL
,MyDate2
将为GETDATE()
(这是当前的日期和时间该行已创建)。最后MyDate3
的默认值为2000年1月1日。
存储过程/功能略有不同:
CREATE PROC ReturnDate @MyDate datetime2(0), @MyDate2 datetime2(0) = NULL, @MyDate3 = '20000101' AS...
此处,@MyDate
没有默认值,因此必须具有提供的值才能使用过程。但是,@MyDate2
的默认值为 NULL
,因此无需提供,值 NULL
使用。如果提供@MyDate2
的值,则将使用该提供的值。 @MyDate3
的默认值为2000年1月1日,因此如果未指定参数,则将使用默认值。
编辑:值得注意的是,如果您将NULL
语句中的INSERT
传递给表或SP / Function,并使用默认值(不是{{1} })然后将使用NULL
。只有在NULL
/ INSERT
/ etc语句中省略了列/参数时才会使用默认值。
答案 1 :(得分:0)
如果您需要指定默认值,则应使用以下格式:'9999-12-31 23:59:59.9999999'
如果您现在需要UTC,则应使用getutcdate()