设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2738|回复: 4
打印 上一主题 下一主题

[Access本身] 求组!如何用当天的日期得到本季度的第一天和最后一天

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-28 16:49:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用DatePart("q", Date, 1, 0)函数可以得到当天所处的季度
那么有没有函数将已知的季度,返回这个季度的第一天、最后一天啊

例如今天是2010-05-28,得到2(二季度)
我想要得到的日期是:第一天    2010-04-01
                            最后一天 2010-06-30
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-5-28 17:18:53 | 只看该作者
我只会用笨方法,自己写函数,下面这个是求第一天的
Public Function Ds(ToDay As Date) As Date
    Dim Y As Integer
    Y = Year(ToDay)
    Select Case DatePart("q", ToDay)
        Case 1
            Ds = DateSerial(Y, 1, 1)
        Case 2
            Ds = DateSerial(Y, 4, 1)
        Case 3
            Ds = DateSerial(Y, 7, 1)
        Case 4
            Ds = DateSerial(Y, 10, 1)
    End Select
End Function
3#
发表于 2010-5-28 17:25:33 | 只看该作者
本帖最后由 todaynew 于 2010-5-28 17:28 编辑

第一天:DateSerial(Year(Date), (DatePart("q", Date, 1, 0) - 1) * 3 + 1, 1)
最后一天:DateSerial(Year(Date), DatePart("q", Date, 1, 0) * 3, 1)
4#
发表于 2010-5-29 19:11:42 | 只看该作者
本帖最后由 todaynew 于 2010-5-29 19:13 编辑
受益非浅,试了一下,最后一天大哟为"最后一天 = DateSerial(Year(Date), DatePart("q", Date, 1, 0) * 3 + 1, 0)"
zmt 发表于 2010-5-29 15:24

你的最后一天写法是对的,我写的最后一天成了季末当月第一天。
不过一般写成:DateSerial(Year(Date), DatePart("q", Date, 1, 0) * 3 + 1, 1-1)
5#
 楼主| 发表于 2010-6-1 10:03:15 | 只看该作者
谢谢各位大哥了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 17:37 , Processed in 0.073035 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表