SQL Server 2008日期参数

Asa*_*sad 2 sql sql-server sql-server-2008

我将开始日期和结束日期参数传递给我的存储过程.我在这里做一个简单的测试:

DECLARE @StartDate DATE = '10/06/2013' --dd/mm/yyyy
SELECT @StartDate   -- this statement running successfully 

DECLARE @EndDate DATE = '30/06/2013'  --dd/mm/yyyy
SELECT @EndDate -- this statement giving error
Run Code Online (Sandbox Code Playgroud)

此语句返回以下错误

消息241,级别16,状态1,行2
转换在从字符串转换日期和/或时间时失败.

有谁知道出了什么问题EndDate

Gor*_*off 5

我很确定错误就在这一行:

DECLARE @EndDate DATE = '30/06/2013'  --dd/mm/yyyy
Run Code Online (Sandbox Code Playgroud)

不在SELECT.SELECT因为处理一个变量应该没问题就没有意义.

我建议你使用YYYYMMDD格式.以下是我的偏好:

DECLARE @EndDate DATE = '2013-30-06' ;
Run Code Online (Sandbox Code Playgroud)

但是,某些国际化设置可能会失败.记录以下内容始终有效:

DECLARE @EndDate DATE = '20133006' ;
Run Code Online (Sandbox Code Playgroud)