以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于统计表中的本月筛选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48088)

--  作者:gaoyong30000
--  发布时间:2014/3/22 18:05:00
--  关于统计表中的本月筛选问题
 Dim g As New GroupTableBuilder("统计表1", DataTables("广告发布明细"))
g.Build()
g.Filter = "month(出版日期) = month.today"
MainTable = Tables("统计表1")


出版日期格式为2014-02-21,  我想在统计表中筛选出  出版日期的月份为本月的数据 ,红色部分肯定有问题,请问如何表达?



--  作者:lsy
--  发布时间:2014/3/22 18:16:00
--  
g.Filter = "Convert(出版日期, \'System.String\')  Like \'%-" & Date.Today.Month & "-%\'"
--  作者:gaoyong30000
--  发布时间:2014/3/22 19:42:00
--  
 date.today.month出现的3  而不是03 这格式  我的日期格式为2013-03-23

--  作者:有点酸
--  发布时间:2014/3/22 21:03:00
--  
http://www.foxtable.com/help/topics/2720.htm
--  作者:gaoyong30000
--  发布时间:2014/3/22 23:36:00
--  
 还是看不懂
我意思是  月份是10以下的 要弄成  09  08.。。 这种格式

--  作者:lsy
--  发布时间:2014/3/23 7:58:00
--  
g.Filter = "Convert(出版日期, \'System.String\')  Like \'%-" & Format(Date.Today.Month,"00") & "-%\'"

--  作者:lsy
--  发布时间:2014/3/23 8:03:00
--  

要的是正确的结果,中间过程是为最后结果服务的,不补0,能正确筛选。

你看到的是2013-03-31,但取日期值的时候,却是2013-3-31,加了0,结果却不对了。


--  作者:有点酸
--  发布时间:2014/3/23 9:21:00
--  

这样比较可靠:

 

Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天

g.filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"