datetime2 的默认值是多少?
编辑:对不起,也许我解释错了,我试过插入 getDate() 并保存了这个值。
我需要知道我的 ssms 的这个字段(红色)的值是多少
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
传递给具有默认值(不是 NULL
)的表或 SP/函数,则将使用 NULL
。只有在 INSERT
/EXEC
/etc 语句中省略列/参数时,才会使用默认值。
SQL Server 中的默认值为 '1900-01-01 00:00:00.0000000' 但是当你从 EntityFramework 尝试时它出现 '0001-01-01 00:00:00.0000000' 并且为了实现这个你把你的代码像这样:
日期时间变量或值应分配 ''
@AssetCode nvarchar(100)='',
@AssignedToDept nvarchar(100)='',
@AssignedToDeptDate datetime2(7)='',
@AssignedToOwnerDate datetime2(7)='',
@CreatedBy nvarchar(100)='',
@CreatedDate datetime2(7)='',
@CreatedMode nvarchar(100)='',
@Description nvarchar(max)='',
@IsClosed bit=false,
@IsDeleted bit=false,
@IsDeletedBy nvarchar(100)='',
@OwnerId nvarchar(100)='',
@PersonEmail nvarchar(100)='',
@PersonName nvarchar(100)='',
@PersonPhone nvarchar(100)='',
@Priority int=4,
@Subject nvarchar(100)='',
@TicketNumber nvarchar(450)='',
@TicketStatus nvarchar(100)='',
@TicketType nvarchar(100)='',
@UpdatedDate datetime2(7)='',
@UpdatedBy nvarchar(100)=''
set @TicketNumber='IN00000361'
INSERT INTO [dbo].[TblTickets]([TicketNumber], [TicketType], [Subject],
[Description], [Priority], [CreatedDate], [CreatedBy], [CreatedMode], [PersonPhone],
[PersonName], [PersonEmail], [UpdatedDate], [UpdatedBy], [AssignedToDept],
[AssignedToDeptDate],
[OwnerId], [AssignedToOwnerDate], [IsClosed], [IsDeleted], [IsDeletedBy],
[TicketStatus], [AssetCode])
VALUES( @TicketNumber, @TicketType, @Subject, @Description, @Priority,
@CreatedDate, @CreatedBy, @CreatedMode, @PersonPhone, @PersonName,
@PersonEmail, @UpdatedDate, @UpdatedBy, @AssignedToDept, @AssignedToDeptDate,
@OwnerId, @AssignedToOwnerDate, @IsClosed, @IsDeleted,
@IsDeletedBy, @TicketStatus, @AssetCode)
所以输出是这样的
Id TicketNumber TicketType Subject Description Priority CreatedDate CreatedBy
CreatedMode PersonPhone PersonName PersonEmail UpdatedDate UpdatedBy AssignedToDept
AssignedToDeptDate OwnerId AssignedToOwnerDate IsClosed IsDeleted
IsDeletedBy TicketStatus AssetCode
24 IN00000361 4 1900-01-01 00:00:00.0000000
1900-01-01 00:00:00.0000000 1900-01-01 00:00:00.0000000
1900-01-01 00:00:00.0000000 0 0
此外,当您查找记录时,查询是 从 TblTickets 中选择 *,其中 UpdatedDate = ''