在以下 DataView.Rowfilter 过滤器中,Request_Date 是一个 smalldatetime:
dv.RowFilter = "Request_Date >= '01/01/2012' and Request_Date <= '12/31/2012'"
这样做的问题是 smalldatetime 是MM/dd/yyyy hh:mm:ss
,但它与具有格式的字符串进行比较'MM/dd/yyyy'
。这意味着过滤器将自动将字符串转换为 smalldatetime,因此比较仅显示 2012 年 1 月 1 日凌晨 12 点和 2012 年 12 月 31 日凌晨 12 点之间的日期/时间。此过滤器不会拾取任何日期晚于 2012 年 12 月 31 日的行。我知道我可以在结束日期上添加一天,或者将 12:59:59 连接到日期的结束以接听一天中的其他时间,但我希望能有更优雅的东西的 sql 等价物 ... CONVERT(smalldatetime, Request_Date, 101) <= '12/31/2012'
。有什么方法可以为 DataView 字段获取不同的日期格式,或者我是否在比较之前一直在按摩结束日期?
仅供参考,目前最好的选择是:
dv.RowFilter = "Request_Date >= #" & dtpStartDate.DateText & "# and Request_Date <= #" & DateAdd(DateInterval.Day, 1, dtpEndDate.DateValue) & "#"
谢谢你的帮助!