2015-11-06 71 views
0

转换日期和/或时间我得到一个错误: Conversion failed when converting date and/or time from character string存储过程:转换失败时从字符串

我的存储过程:

USE [DEMO] 
GO 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[demo] @from_day varchar(20), @to_day varchar(20) 
AS 
BEGIN 
select db.* 
from db 
where 
convert(date,db.DateUse,103) between convert(date, @from_day,103) and convert(date, @to_day,103) 

END 

我用ASPxDateEdit(DevExpress的)与2 PARAM:

<dx:ASPxDateEdit ID="from_day" runat="server" ClientInstanceName="from_day" 
         EditFormat="Custom" EditFormatString="dd/MM/yyyy" Width="100px" 
         Theme="Aqua" > 
</dx:ASPxDateEdit> 

<dx:ASPxDateEdit ID="to_day" runat="server" ClientInstanceName="to_day" 
         EditFormat="Custom" EditFormatString="dd/MM/yyyy" Width="100px" 
         Theme="Aqua"> 
</dx:ASPxDateEdit> 

我用SelectParameters:

<asp:SqlDataSource ID="SqlDataSourceGrid" runat="server" ConnectionString="<%$ ConnectionStrings:DEMOConn %>" SelectCommand="demo" SelectCommandType="StoredProcedure"> 
      <SelectParameters> 
       <asp:ControlParameter ControlID="from_day" Name="from_day" PropertyName="Value" Type="String" /> 
       <asp:ControlParameter ControlID="to_day" Name="to_day" PropertyName="Value" Type="String" /> 
      </SelectParameters> 
</asp:SqlDataSource> 

我无法修复此错误。

+0

这是因为'convert(date,@ from_day,103)和convert(date,@ to_day,103)',你能告诉我们,你如何传递参数给SP? –

+0

我使用SelectParameters: MeosCoder

+0

您的查询错误, 您错过了表名,等等等等 'select * from table_Name where date date between dat1 and dat2' –

回答

0

您正在向SP中的日期时间参数传递一个字符串。将ControlParameters中的数据类型更改为DateTime,或将SP中的字符串转换为日期时间值。我个人会改变ControlPatameters。希望这有助于

+0

谢谢你的帮助 – MeosCoder

相关问题