我正在使用存储过程将数据插入表中。但是,当我执行它并插入一个日期(我将日期插入为:02.08.1999
)时,出现错误:
“。1999”附近的语法不正确。
为什么会这样?我插入的日期格式错误吗? 我正在使用日期数据类型而不是日期时间 我传递给存储过程的值:
DECLARE @return_value INT
EXEC @return_value = [dbo].[insStd]
@StdID = 6,
@SName = N'Sarath',
@FName = N'dsg',
@Dob = 12.09.1999,
@Gender = N'M',
@SAddress = N'fsdf',
@SState = N'fdsf',
@Spincode = N'324',
@SMobile = N'66757657',
@SEmail = N'fdsf',
@SPphone = N'45456',
@SDegree = N'bsc',
@YoC = 2019,
@SPercentage = 75,
@SCollege = N'sn',
@username = N'sarath',
@pswd = N'sarath'
SELECT 'Return Value' = @return_value
GO
答案 0 :(得分:3)
当您想将DATE
作为字符串文字传递时-您必须将设置为字符串文字格式,这意味着将其置于单引号
DECLARE @return_value INT
EXEC @return_value = [dbo].[insStd]
@StdID = 6,
@SName = N'Sarath',
@FName = N'dsg',
@Dob = '12.09.1999', -- SINGLE QUOTES!!!
@Gender = N'M',
@SAddress = N'fsdf',
@SState = N'fdsf',
@Spincode = N'324',
@SMobile = N'66757657',
@SEmail = N'fdsf',
@SPphone = N'45456',
@SDegree = N'bsc',
@YoC = 2019,
@SPercentage = 75,
@SCollege = N'sn',
@username = N'sarath',
@pswd = N'sarath'
SELECT 'Return Value' = @return_value
为避免日期格式(取决于语言/区域设置)的任何问题,建议使用(修改后的) ISO-8601 日期格式:YYYYMMDD
:
EXEC @return_value = [dbo].[insStd]
@StdID = 6,
@SName = N'Sarath',
@FName = N'dsg',
@Dob = '19990912', -- ISO-8601 and SINGLE QUOTES
@Gender = N'M',
@SAddress = N'fsdf',
@SState = N'fdsf',
@Spincode = N'324',
@SMobile = N'66757657',
@SEmail = N'fdsf',
@SPphone = N'45456',
@SDegree = N'bsc',
@YoC = 2019,
@SPercentage = 75,
@SCollege = N'sn',
@username = N'sarath',
@pswd = N'sarath'
SELECT 'Return Value' = @return_value