这条提前15天生日报警语句是否有错? (100分)

  • 主题发起人 主题发起人 bravercaohao
  • 开始时间 开始时间
B

bravercaohao

Unregistered / Unconfirmed
GUEST, unregistred user!
要求列出person表中per_dob(出生年月日字段)距当天15天内(含当天)所有记录:
Select per_name,Per_Dob From person
Where ((month(Per_Dob)=month(getdate())) and (day(Per_Dob)-day(getdate())) between 0 and 15)
or ((month(Per_Dob-15)=month(getdate())) and (day(Per_Dob-15)-day(getdate())) between -15 and 0)
发现此句子有错,请举出实例.
 
哪么复杂干吗?
where DateDiff(day,dateadd(Year,DATEDIFF(year,per_dob,GetDate()),per_dob),GetDate())<15 and
dateadd(Year,DATEDIFF(year,per_dob,GetDate()),per_dob)<=getdate()
 
我问的是有没有错?如有错要举出实例.
 
多加两个括号
Select per_name,Per_Dob From person
Where
((month(Per_Dob)=month(getdate())) and ((day(Per_Dob)-day(getdate())) between 0 and 15))
or ((month(Per_Dob-15)=month(getdate())) and ((day(Per_Dob-15)-day(getdate())) between -15 and 0))
 
不对括号没错
 
当然有错了。
例如:getdate()=2002-08-25
per_DOB=1977-09-05 就不对了。
我原来的哪个条件是,是到今天为止前十五天人的生日
跟你的有点相反,你变一下就可以了。
 
后退
顶部