以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  日期问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145835)

--  作者:zhangjin
--  发布时间:2020/2/8 22:04:00
--  日期问题

    StartDate = New Date(Year,Month,1) \'获得该月第一天
    EndDate = New Date(Year,Month,Date.DaysInMonth(Year,Month)) \'获得该月最后一天
    MessageBox.show(EndDate)
    DataTables("alarm_system_netnumber").LoadFilter = "district=\'" & fs.text & "\' And datetime>= #" & StartDate & "# And datetime<= #" & EndDate & "#"
为什么,这里找出的记录只到12月30没有31日的。我查2019年12月的, enddate显示出来的是2019-12-31没有错,但找出的记录只到2019-12-30,这是为什么

--  作者:有点蓝
--  发布时间:2020/2/9 21:39:00
--  
比如日期值为2019-12-31,那么指的是:2019-12-31 00:00:00,如果日期数据为2019-12-31 12:00:00,当然就查不到了。所以如果日期值是有时分秒数据的应该这样:

DataTables("alarm_system_netnumber").LoadFilter = "district=\'" & fs.text & "\' And datetime>= #" & StartDate & "# And datetime < #" & EndDate.adddays(1) & "#"

--  作者:shenyl0211
--  发布时间:2020/2/12 14:24:00
--  
考虑日期内或外的写法:
EndDate = EndDate.AddHours(23) 
EndDate = EndDate.AddMinutes(59)
EndDate = EndDate.AddSeconds(59)
EndDate = EndDate.adddays(1)
EndDate = EndDate.AddSeconds(-1)

然后
If 两日期之外
    Filter = 起始日期 & " < \'" & StartDate & "\' or " & 截止日期 & " > \'" & EndDate & "\'"
Else 两日期之内
    Filter = 起始日期  & " >= \'" & StartDate & "\' And " & 截止日期 & " <= \'" & EndDate & "\'"
End If

--  作者:有点蓝
--  发布时间:2020/2/12 14:29:00
--  
3楼的用法是有问题的,因为可能还有有毫秒值,比如:2019-12-31 23:59:59.9999,所以应该是2楼的用法
--  作者:shenyl0211
--  发布时间:2020/2/14 10:08:00
--  
谢谢蓝版指点。蓝版真细心、周到。