Foxtable(狐表)用户栏目专家坐堂 → 日期问题


  共有3053人关注过本帖树形打印复制链接

主题:日期问题

帅哥哟,离线,有人找我吗?
zhangjin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:55 积分:552 威望:0 精华:0 注册:2019/12/4 20:42:00
日期问题  发帖心情 Post By: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,这是为什么

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/12 14:29:00 [只看该作者]

3楼的用法是有问题的,因为可能还有有毫秒值,比如:2019-12-31 23:59:59.9999,所以应该是2楼的用法

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2020/2/14 10:08:00 [只看该作者]

谢谢蓝版指点。蓝版真细心、周到。

 回到顶部