问题在于不要在表中插入值。
我通过未解决的问题检查SQL Server的咨询以获取日期时间类型的插入值。
USE [NameTable]
GO
INSERT INTO [dbo].[User]
([UserSID]
,[ApplicationSID]
,[Username]
,[Email]
,[Password]
,[PasswordQuestion]
,[PasswordAnswer]
,[IsApproved]
,[IsOnline]
,[IsLockedOut]
,[LastLockedOutDate]
,[FailedPasswordAttemptCount]
,[FailedPasswordAttemptWindowStart]
,[FailedPasswordAnswerAttemptCount]
,[FailedPasswordAnswerAttemptWindowStart]
,[Comment]
,[CreationDate]
,[LastActivityDate]
,[LastLoginDate]
,[LastPasswordChangedDate]
,[LastChangedUser]
,[LastChangedDate])
VALUES
('db0a4054-5efe-4945-bd08-ba057cd7990f'
,'F830DCF0-7D82-4FC1-B258-0502D0F00029'
,'lvillarroel'
,'lvv_umss@gmail.com'
,'vcaMiL4tVmj4wyXhTw/ISz344maPUDzcV2z8SFVKMF0='
,'NULL'
,'NULL'
,1
,0
,0
,'2019-01-14T18:10:40'
,0
,'NULL'
,0
,'NULL'
,''
,'2019-01-14T18:10:40'
,'NULL'
,'NULL'
,'NULL'
,'db0a4054-5efe-4945-bd08-ba057cd7990f'
,'NULL')
GO
结果是一条消息
第241条消息,第16级,状态1,第4行
从字符串转换日期和/或时间时转换失败。
答案 0 :(得分:4)
真正的问题是'null'
,您不需要在null
值周围包含单引号。
或者您可以直接忽略没有值的列(即'null'
)。
即使日期在2019-01-14T18:10:40
中,您的代码也可以完美运行SQL Server会为您隐式将其转换为date
/ date time
。
因此,在您的代码中,您有一个[LastChangedDate]
并提供了'NULL'
值,该值不正确且不会隐式转换为日期时间。因此,只需尝试null
而不是'null'
。
答案 1 :(得分:0)
如果您要编写'NULL'
,则SQL Server可以理解并将其视为字符串值。因此,如果您不想插入Datetime
的值,则只需编写NULL
,如下所示。
在这里,我使用的日期值与您在尝试运行的SQL查询中使用的日期值相同,并且与您的问题相同。
Create table Users([LastLockedOutDate] DateTime
,[CreationDate] DateTime
,[LastActivityDate] DateTime
,[LastLoginDate] DateTime
,[LastPasswordChangedDate] DateTime
,[LastChangedDate] DateTime)
Insert Into Users Values('2019-01-14T18:10:40', '2019-01-14T18:10:40', NULL, NULL, NULL, NULL)
SELECT * FROM Users
您可以在Live Demo
中找到演示