我要输入2个日期值以便从SQL查询中过滤掉。
EXEC [Report].[usp_EmployeeReport_Detail] '01-01-2017','31-08-2019'
我输入的日期为MM/dd/yyyy
,然后输入
WHERE
子句包含
(j.StartDate BETWEEN @BegDate AND @EndDate)
执行查询时出现以下错误。
从nvarchar数据类型到datetime数据类型的转换导致值超出范围。
我也尝试使用以下方法转换日期时间结果。
SELECT CONVERT(datetime,01-31-2017,101)
这将返回1894-05-25 00:00:00.000
作为响应。怎么可能?
答案 0 :(得分:2)
尝试:您错过了日期中的报价:
SELECT CONVERT(datetime,'01-31-2017',101)
答案 1 :(得分:2)
正如@Damien_The_Unbeliever所说,01-31-2017
使用数值表达式,其结果为-2047
。
-2047
表示从2047
减去1900-01-01
天的日子,因此日期的结果将是1894-05-25 00:00:00.000
。
因此,您的查询SELECT CONVERT(datetime,01-31-2017,101)
与SELECT CONVERT(datetime,-2047,101)
相同
您可以使用符合ANSI的格式YYYYMMDD
SELECT CONVERT(datetime,'20170131',101);
代替
DD-MM-YYYY
01-31-2017
。
或者只需添加'
即可包含日期'01-31-2017'
,如回答@fa06。
答案 2 :(得分:0)
尝试以下方式
android:launchMode = "singleInstance"
在您的情况下,您错过了引号作为显示的结果输出的类型