-1

datetime2 的默认值是多少?

编辑:对不起,也许我解释错了,我试图插入 getDate() 并为我保存了这个值。

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

例子

4

2 回答 2

4

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, MyDate2will 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 语句中省略列/参数时,才会使用默认值。INSERTNULLNULLINSERTEXEC

于 2018-01-24T11:32:10.587 回答
1

如果您需要指定默认值,则应使用该格式:'9999-12-31 23:59:59.9999999'

如果你现在需要 UTC,你应该使用 getutcdate()

https://i.stack.imgur.com/a3OiS.png

于 2019-04-22T08:51:17.393 回答