我正在尝试添加一个表,其中一组值是一个日期。 尝试添加日期时,我收到以下错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
我试图运行以下查询:
INSERT INTO BoxEntries (Date,Value,Description,Empid,EmpName) Values(CAST('27/07/2017 10:24:13' AS DATETIME),'0','Alpha Day','0','Alpha')
INSERT INTO BoxEntries (Date,Value,Description,Empid,EmpName) Values(CONVERT(VARCHAR,'27/07/2017 10:24:13',13),'0','Alpha Day','0','Alpha')
INSERT INTO BoxEntries (Date,Value,Description,Empid,EmpName) Values(CONVERT(VARCHAR,'27-07-2017 10:24:13.000',113),'0','Alpha Day','0','Alpha')
INSERT INTO BoxEntries (Date,Value,Description,Empid,EmpName) Values('27-07-2017 10:24:13.000','0','Alpha Day','0','Alpha')
我已经确认,13或113是SQL中我想要的数据时间。 有线部分是当我尝试直接向数据库添加值时,它不会给我任何错误。
表格:
CREATE TABLE [dbo].[BoxEntries] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Date] DATETIME NOT NULL,
[Value] MONEY NOT NULL,
[Description] VARCHAR (MAX) NOT NULL,
[EmpId] INT NOT NULL,
[EmpName] VARCHAR (MAX) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC) );
答案 0 :(得分:1)
日期时间的mssql格式为'YYYY-MM-DD HH:MM:SS.mmm'
https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime-transact-sql
因此对您的案例的正确查询可能是:
INSERT INTO BoxEntries ([Date],Value,Description,Empid,EmpName)
Values('2017-07-27 10:24:13.000', '0', 'Alpha Day', '0', 'Alpha');