我有一个网格视图,我想过滤它只显示某个日期间隔的数据(从日期A到日期B,包括A和B)
我使用SqlDataSource和FilterExpression,最初我使用这个FilterExpression:
FilterExpression="Submitted_time >= '{0}' AND Submitted_time <= '{1}'">
但{1}日期的数据未包含在结果中(虽然我使用'&lt; =')(可能是因为时间(小时/分钟),所以我设法添加了1天到{1}:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CTECS %>" SelectCommand="SELECT * FROM [Event] ORDER BY [Id] DESC"
FilterExpression="Submitted_time >= '{0}' AND Submitted_time <= DATEADD(day, 1, '{1}')">
<FilterParameters>
<asp:ControlParameter Name="FromDate" ControlID="oCalendar1" PropertyName="SelectedDate" DefaultValue="1/1/1800" Type="DateTime" />
<asp:ControlParameter Name="ToDate" ControlID="oCalendar2" PropertyName="SelectedDate" DefaultValue="1/1/3000" Type="DateTime" />
</FilterParameters>
</asp:SqlDataSource>
然后Visual Studio给我: 该表达式包含未定义的函数调用DATEADD()
此处有任何解决方案,我的目标只是将日期{1}的数据包含在结果中......
答案 0 :(得分:0)
您的约会时间需要引用它。现在它把它当作双重对待。
尝试:
DATEADD(day, 1, '{1}')
答案 1 :(得分:0)
取自: http://www.experts-exchange.com/Programming/Editors_IDEs/Q_22907598.html
[参考filterexpression中的dateadd]
不,它只是一个字符串样式过滤器。你必须评估 date,然后将其作为字符串传递给filterexpression
E.g。你不能在你的filterexpression中使用内置的sql函数(至少我是如何解释它)。您需要DateTime.AddDays(1)
日期oCalendar2
或ControlParameter toDate