SQL Server中日期的默认格式是什么?

时间:2019-08-16 12:00:48

标签: sql-server

我正在使用存储过程将数据插入表中。但是,当我执行它并插入一个日期(我将日期插入为: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

1 个答案:

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