Foxtable(狐表)用户栏目专家坐堂 → 关于日期分组(已解决)


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

主题:关于日期分组(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
关于日期分组(已解决)  发帖心情 Post By:2011/6/11 12:35:00 [只看该作者]

按年、月分组,因为每月25日为结转日,要求[月]列:月份不等于12,且日期大于25的月份为下个月,如何实现,恳请指教!

 


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

[此贴子已经被作者于2011-6-13 12:51:14编辑过]

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/6/11 13:08:00 [只看该作者]

参考:
http://www.datasoft.com.cn/dispbbs.asp?boardid=2&id=1084&authorid=0&page=0&star=1

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/6/11 13:36:00 [只看该作者]

谢谢 ybil 的指教,其他月份都没有问题,就是十二月份的26-31号还是按12月分组,如何实现,再次请教!!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/6/11 13:40:00 [只看该作者]

还有,1月份的1,最好用01来表示,这样在筛选树上比较美观!!

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/6/11 14:55:00 [只看该作者]

IIF(Len(Convert(Convert(SUBSTRING(Convert([日期],'System.String'),6,IIF(SUBSTRING(Convert([日期],'System.String'),7,1) = '-',1,2)),'System.Int16')+IIF(SUBSTRING(Convert([日期],'System.String'),8,3) in ('-26','-27','-28','-29','-30','-31','26','27','28','29','30','31') and SubString(Convert([日期],'System.String'),6,IIF(SubString(Convert([日期],'System.String'),7,1) = '-',1,2))<>'12',1,0),'System.String')) = 1,'0', '')+Convert(Convert(SUBSTRING(Convert([日期],'System.String'),6,IIF(SUBSTRING(Convert([日期],'System.String'),7,1) = '-',1,2)),'System.Int16')+IIF(SUBSTRING(Convert([日期],'System.String'),8,3) in ('-26','-27','-28','-29','-30','-31','26','27','28','29','30','31') and SubString(Convert([日期],'System.String'),6,IIF(SubString(Convert([日期],'System.String'),7,1) = '-',1,2))<>'12',1,0),'System.String')


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/6/11 15:25:00 [只看该作者]

谢谢 ybil 的指教,表达式可以达到要求,需要消化一下,再次感谢 ybil !!

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/6/11 20:17:00 [只看该作者]

参考 ybil 版主的代码,对表达式进行简化如下:

 

iif(Convert(SUBSTRING(Convert([日期],'System.String'),6,2),'System.Int16')<>12,iif(Convert(SUBSTRING(Convert([日期],'System.String'),9,2),'System.Int16')>25,Convert(Convert(SUBSTRING(Convert([日期],'System.String'),6,2),'System.Int16')+1,'System.String'),SUBSTRING(Convert([日期],'System.String'),6,2)),SUBSTRING(Convert([日期],'System.String'),6,2))

 

这段代码已经基本符合要求,但是当日期大于25时,月份加1后,1-8月份只能显示一位数,而小于25时可以显示两位数。用字符格式化Format(X,"00") 出错,如何达到与 ybil 版主代码一样的效果,求指教!!


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/6/11 21:14:00 [只看该作者]

iif(Convert(SUBSTRING(Convert([日期],'System.String'),6,2),'System.Int16') < 12,
iif(Convert(SUBSTRING(Convert([日期],'System.String'),9,2),'System.Int16')>25,
'0'+Convert(Convert(SUBSTRING(Convert([日期],'System.String'),6,2),'System.Int16')+1,'System.String')
,SUBSTRING(Convert([日期],'System.String'),6,2)),
SUBSTRING(Convert([日期],'System.String'),6,2))

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2011/6/11 21:37:00 [只看该作者]

谢谢 hhbb ,完全达到理想的效果,通过这段代码,学到不少的知识,非常感谢foxtable论坛的热心人,帮助我树立学习foxtabie的信心!

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/6/11 22:35:00 [只看该作者]

8樓有點問題,修正一下:
IIF(SubString(Convert([日期],'System.String'),6,2) > '09' or SubString(Convert([日期],'System.String'),6,2) = '09'  and SubString(Convert([日期],'System.String'),9,2) > '26','','0')+(IIF(SubString(Convert([日期],'System.String'),6,2) = '12' or SubString(Convert([日期],'System.String'),9,2) < '26',0,1)+Convert(SubString(Convert([日期],'System.String'),6,2),'System.Int16'))

或:
IIF(IIF(SubString(Convert([日期],'System.String'),6,2) = '12' or SubString(Convert([日期],'System.String'),9,2) < '26',0,1)+Convert(SubString(Convert([日期],'System.String'),6,2),'System.Int16') > 9,'','0')+(IIF(SubString(Convert([日期],'System.String'),6,2) = '12' or SubString(Convert([日期],'System.String'),9,2) < '26',0,1)+Convert(SubString(Convert([日期],'System.String'),6,2),'System.Int16'))

 回到顶部
总数 13 1 2 下一页