为了账号安全,请及时绑定邮箱和手机立即绑定

sql日期去除年 查出x月x日到x月x日之间

sql日期去除年 查出x月x日到x月x日之间

慕无忌1623718 2018-12-07 03:43:14
数据库里存的是会员的生日(包括年月日),我想查出今天到后天过生日的客户(只能根据月和日)。 我写出来后特别复杂,大家有什么简单点的方法吗?
查看完整描述

4 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

sql server的话就下面了

select
* from testDate
where
substring(convert(varchar(100),birthdate,112),5,4)
between substring(convert(varchar(100),getDate(),112),5,4)  and
substring(convert(varchar(100), DATEADD(d,2,  getDate()),112),5,4)

要是想处理2月29日的人的话。就用in吧

select
* from testDate
where
substring(convert(varchar(100),birthdate,112),5,4)
in(substring(convert(varchar(100),getDate(),112),5,4),
substring(convert(varchar(100), DATEADD(d,1,  getDate()),112),5,4),
substring(convert(varchar(100), DATEADD(d,2,  getDate()),112),5,4))

查看完整回答
反对 回复 2019-01-07
?
倚天杖

TA贡献1828条经验 获得超3个赞

Where AddDate>='" + startDate + "' and AddDate<='" + stopDate + "'"

查看完整回答
反对 回复 2019-01-07
?
慕容3067478

TA贡献1773条经验 获得超3个赞

第一种:month(colname)=month(getdate()) and day(colname)-day(getdate()) between 0 and 2

第二种:datediff(day,convert(datetime,str(year(getdate()),4)+'-'+str(month(requireddate),2)+'-'+str(day(requireddate),2)),requireddate) between 0 and 2
暂时就想到这2种,还有的lx可以添加。

查看完整回答
反对 回复 2019-01-07
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

你再存多一列为客户的生日(不包括年)不就行了吗?而且生日是不会更改的。用这么麻烦的方法,查询效率很低的。

查看完整回答
反对 回复 2019-01-07
  • 4 回答
  • 0 关注
  • 654 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信