如何转化日期区间表达-hjs
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


如何转化日期区间表达

发表时间:2013/7/4 16:40:42 评论(3) 浏览(9523)  评论 | 加入收藏 | 复制
   
摘 要:区间划分日期,转化表达方式 
正 文:

 

一、提出以下问题:

表有日期字段:如:2010-01-25,……2012-12-21,2012-12-21,2013-01-20……

需要区间划分:如:2011-11-21至2011-12-20表示为201112,2012-12-21至2013-01-20日期间表达为201301,2013-01-21至2013-02-20日期间表达为201302,……,2013-11-21至2013-12-20日期间表达为201312,2013-12-21至2014-01-20日期间表达为201401,以此类推,如何使用函数或者查询表示!

二、煮江品茶 老师给出了答案,但是运行效率较低。

Function GetMyMonth(ByVal date0 As Date, ByVal D As Date) As String
'功能:返回工厂日历计算的月度
'参数:D --- 计算日期
'示例:select *,GetMyMonth(#1900/12/20#,[日期]) from tbname
Dim d0 As Date, d1 As Date
Dim str As String
d0 = date0
d1 = DateAdd("m", 1, d0)
str = ""
If d0 <= D Then
Do While (D >= d0 And D < d1) = False
d0 = d1
d1 = DateAdd("m", 1, d0)
Loop
str = Format(d1, "yyyymm")
End If
GetMyMonth = str
End Function

三、自己研究个,虽然不简洁,但是效率高些。
Function GetMyMonth1(ByVal D As Date) As String
    '功能:返回工厂日历计算的月度
    '参数:D --- 计算日期
    '示例:select *,GetMyMonth([日期]) from tbname
    Dim d0 As String, d1 As String
    Dim str As String
    str = ""
    d0 = Format(D, "mmdd")
    d1 = Format(D, "yyyy")
    Select Case d0
    Case "0101" To "0120"
    str = d1 & "01"
    Case "0121" To "0220"
    str = d1 & "02"
    Case "0221" To "0320"
    str = d1 & "03"
    Case "0321" To "0420"
    str = d1 & "04"
    Case "0421" To "0520"
    str = d1 & "05"
    Case "0521" To "0620"
    str = d1 & "06"
    Case "0621" To "0720"
    str = d1 & "07"
    Case "0721" To "0820"
    str = d1 & "08"
    Case "0821" To "0920"
    str = d1 & "09"
    Case "0921" To "1020"
    str = d1 & "10"
    Case "1021" To "1120"
    str = d1 & "11"
    Case "1121" To "1220"
    str = d1 & "12"
    Case "1221" To "1231"
    str = Format(D, "yyyy") + 1
    str = str & "01"
    Case Else
    str = "-"
    End Select
    GetMyMonth1 = str
End Function

 


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【译文】在一个日期范围内匹配记录  【周芳  2012/4/21】
【Access源码示例】数字区间段查询示例,开始数字至截止数字区段...  【麥田  2013/3/12】
【Access源码示例】日期区间段查询示例,日期时间段查询示例,开...  【麥田  2013/3/13】
【Access源码示例】按月份的日期区间段查询示例,开始月份至截止...  【麥田  2013/3/14】
常见问答
技术分类
相关资源
文章搜索
关于作者

hjs

文章分类

文章存档

友情链接