用日历对日期时间列进行排序



数据库中的UserLoginPerDay列具有DateTime属性。我的想法是,我抓住这一列与其他一些列,并显示在我的asp.net网站的网格视图。

然而,我注意到,在写这句话,我必须输入一个时间值,否则它不会显示任何记录。我只想能够在我的日历中选择一天,并且所有与该天相等的记录都会显示,而忽略时间。

我使用的是SqlDataSource

ASPX页

<asp:Calendar ID="Calendar1" runat="server" 
    onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:LoginProject %>" 
    SelectCommand="SELECT UserLoginToday.UserId, Gebruikers.Lastname, Gebruikers.Firstname, UserLoginToday.UserLoginPerDay FROM Gebruikers INNER JOIN UserLoginToday ON Gebruikers.UserId = UserLoginToday.UserId WHERE (UserLoginToday.UserLoginPerDay = ISNULL(@datefilter, UserLoginToday.UserLoginPerDay))" CancelSelectOnNullParameter="false"><SelectParameters>
        <asp:ControlParameter ControlID="Calendar1" Name="datefilter" 
            PropertyName="SelectedDate" />
    </SelectParameters>
</asp:SqlDataSource>

DateTime包含日期和时间数据。除非数据库中的所有行都以0作为时间部分,并且应用程序也将0作为时间部分发送,否则它们永远不会相等。

如果你的数据库是MS的SQL Server,我建议你使用DATEDIFF函数来比较日期。

DATEDIFF(DAY, date1, date2) = 0
如果两个日期相同,

为真,忽略值的时间部分。

相关内容

  • 没有找到相关文章

最新更新