【发布时间】:2012-12-31 10:01:23
【问题描述】:
我得到错误:
从字符串转换日期和/或时间时转换失败。
我这样调用存储过程:
var result = (from x in db.spStoredProc(sStart, sEnd) select x).ToList();
其中sStart 和sEnd 是具有此值的字符串:
sStart = "CONVERT(date,GETDATE())"
和
sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"
存储过程有两个varchar(max)类型的参数
在存储过程中,我进行左连接并像这样使用它们:
where date_expire >= @sStartSQL AND date_expire < @sEndSQL
为什么我会收到错误消息?
【问题讨论】:
-
您可能正在混合使用日期格式(例如美国和欧盟),因此当您尝试从字符串转换时它会失败。
-
@ChrisF 好的,如何解决这个问题?
-
将所有日期存储为日期(而不是字符串),并确保在与字符串相互转换时正确设置了区域设置。
-
您使用的是哪个 DBMS? SQL 不是产品 - 它是一种查询语言。
标签: c# sql entity-framework