猿问

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

数据库里存的是会员的生日(包括年月日),我想查出今天到后天过生日的客户(只能根据月和日)。 我写出来后特别复杂,大家有什么简单点的方法吗?

慕无忌1623718
浏览 655回答 4
4回答

慕妹3242003

sql server的话就下面了 select * from testDatewhere 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 testDatewhere 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))

倚天杖

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

慕容3067478

第一种: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可以添加。

蝴蝶不菲

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

相关分类

SQL Server
我要回答