datetime2 的默认值是多少?
编辑:对不起,也许我解释错了,我试图插入 getDate() 并为我保存了这个值。
我需要知道我的 ssms 这个字段(红色字段)的值是多少
datetime2 的默认值是多少?
编辑:对不起,也许我解释错了,我试图插入 getDate() 并为我保存了这个值。
我需要知道我的 ssms 这个字段(红色字段)的值是多少
NULL
除非您另外指定,否则SQL Server 中的所有内容都具有默认值。例如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
will be GETDATE()
(即创建该行的当前日期和时间)。最后MyDate3
将有一个默认值 2000 年 1 月 1 日。
存储过程/函数的工作方式略有不同:
CREATE PROC ReturnDate @MyDate datetime2(0), @MyDate2 datetime2(0) = NULL, @MyDate3 = '20000101' AS...
在这里,@MyDate
没有默认值,因此必须提供一个值才能使用该过程。@MyDate2
但是,它的默认值为NULL
,因此不需要提供并且NULL
将使用该值。如果提供了 for 的@MyDate2
值,则将使用提供的值。@MyDate3
默认值为 2000 年 1 月 1 日,因此如果未指定参数,则将使用默认值。
编辑:值得注意的是,如果您将带有默认值(不是)NULL
的语句传递给表或 SP/Function,则将使用该语句。只有在/ /etc 语句中省略列/参数时,才会使用默认值。INSERT
NULL
NULL
INSERT
EXEC
如果您需要指定默认值,则应使用该格式:'9999-12-31 23:59:59.9999999'
如果你现在需要 UTC,你应该使用 getutcdate()