◆ ◆ ◆ 一个很考验逻辑分析能力的问题,今天面试时碰到的!! ◆ ◆ ◆

hcvo2 2004-07-10 02:03:18
需求:

判断纳税户在2004年B月份(取值范围:1-12 整数型)时是否处于停业时间段

字段名: 停业时间始 停业时间止

字段值:
记录A 2004-1-1 2004-3-1
记录B 2003-11-1 2004-2-1
记录C 2004-10-1 2005-2-2

字段类型: 时间型 时间型

我用 (month(停业时间始)-1<B) and (month(停业时间止)+1>b) 来判断B是否在停业时间段,但只能在年份相同的情况下正确运行,年份不同时就出现判断错误,例如当B为2时判断就出现错误, 现求正确的解决办法

请重点注意,如果出现以下情况时:

1.当“停业时间始”在2003年时
2.当“停业时间止”在2005年时
...全文
283 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsdzmhongm 2004-07-10
  • 打赏
  • 举报
回复
^
^
^
^
^
^
^
^
^
^
^
^
zjcxc 2004-07-10
  • 打赏
  • 举报
回复
停业时间始<=dateadd(month,B,'2004-1-1')-1 and 停业时间止>=dateadd(month,B,'2003-12-1')
bbcbs 2004-07-10
  • 打赏
  • 举报
回复
还是用dateadd
思路
dateadd("d",-1,cdate("2004"-"&b&"-1"))
算出2004年B月一号的前一天。
然后用类似方法算出B月后一天,这样再进行比较
ypwyy 2004-07-10
  • 打赏
  • 举报
回复
where (year(停业时间开始)*12+month(停业时间开始)+1)>=(2004*12+b) or (year(停业时间止)*12+month(停业时间止))<=(2004*12+b+1)
chengbo1983 2004-07-10
  • 打赏
  • 举报
回复
学习
hcvo2 2004-07-10
  • 打赏
  • 举报
回复

楼上的都不对,你们忽视了变量B,我已经说了要判断的是变量B,是否在停业时间 段内

------------------------------------------
需求:

判断纳税户在2004年B月份(取值范围:1-12 整数型)时是否处于停业时间段

再次强调变量B是一个整数型数值!!!!!!!
hcvo2 2004-07-10
  • 打赏
  • 举报
回复
楼上的都对,你们忽视了变量B,我已经说了要判断的是变量B,是否在停业时间 段内

------------------------------------------
需求:

判断纳税户在2004年B月份(取值范围:1-12 整数型)时是否处于停业时间段

再次强调变量B是一个整数型数值!!!!!!!
cdsun 2004-07-10
  • 打赏
  • 举报
回复
停业时间开始<='2004-5-1' and 停业时间结束>'2004-6-1'
netying 2004-07-10
  • 打赏
  • 举报
回复
不用month,用整个字段

停业时间开始<='2004-5-1' and 停业时间结束>'2004-6-1'
bbcbs 2004-07-10
  • 打赏
  • 举报
回复
用dateadd
加一月为dateadd("m",1,停业时间始)
减一月为dateadd("m",-1,停业时间始)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧