datetime2的默认值

时间:2018-01-24 11:24:55

标签: sql sql-server ssms datetime2

datetime2的默认值是什么?

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

我需要知道我的ssms

的这个字段(红色)的值是多少

EXAMPLE

2 个答案:

答案 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()

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