datetime2 的默认值

Mar*_*rro 0 sql sql-server ssms datetime2

datetime2 的默认值是多少?

编辑:抱歉,也许我解释错了,我尝试插入 getDate() 并且它保存了我这个值。

我需要知道我的 ssms 的该字段(红色字段)的值是多少

例子

use*_*983 6

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');
Run Code Online (Sandbox Code Playgroud)

该列的MyDate默认值为NULL, MyDate2will be GETDATE()(这是创建行时的当前日期和时间)。最后MyDate3将具有默认值 2000 年 1 月 1 日。

存储过程/函数的工作方式略有不同:

CREATE PROC ReturnDate @MyDate datetime2(0), @MyDate2 datetime2(0) = NULL, @MyDate3 = '20000101' AS...
Run Code Online (Sandbox Code Playgroud)

这里,@MyDate没有默认值,因此必须提供一个值才能使用该过程。@MyDate2但是,有一个默认值NULL,因此不需要提供并且NULL将使用该值。如果提供了值@MyDate2,则将使用该提供的值。@MyDate3默认值为 2000 年 1 月 1 日,因此如果未指定该参数,则将使用默认值。

编辑:值得注意的是,如果您将NULL一条INSERT语句传递给表或 SP/函数,并带有默认值(不是NULL),则将NULL使用它。只有当INSERT/ EXEC/etc 语句中省略列/参数时,才会使用默认值。