求高手解决:SQL语句查询本周内生日的同学,以及本月内生日的同学....
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求高手解决:SQL语句查询本周内生日的同学,以及本月内生日的同学....相关的知识,希望对你有一定的参考价值。
本周有点麻烦, 本月很简单本月就是
WHERE MONTH( 生日字段) = MONTH ( GetDate() )
本周就首先要计算出本周的第一天与最后一天
-- 本周一
set @dt1 = DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()), 0)
-- 下周一
set @dt2 = DATEADD(WEEK, DATEDIFF(WEEK, 0, GETDATE()) + 1, 0)
然后一个有点复杂的 SQL
WHERE DATEADD(Year,DATEDIFF(Year,Birthday,@dt1),Birthday)
BETWEEN @dt1 AND @dt2
OR DATEADD(Year,DATEDIFF(Year,Birthday,@dt2),Birthday)
BETWEEN @dt1 AND @dt2
SQL 的解释如下:
http://zhidao.baidu.com/question/233016367.html 参考技术A CASE WHEN DATEDIFF(dd, DOB,GETDATE()) <=7 THEN '本周生日'
WHEN DATEDIFF(dd, DOB, GETDATE()) <=31 THEN '本月生日'
END 参考技术B select *
from tb
where datepart(wk,生日字段)=datepart(wk,getdate())
and datepart(month,生日字段) = datepart(month,getdate()) ; 参考技术C 查询的时候对生日进行分解,提取日和月对比,满足日月吻合的就是符合筛选条件的生日会员。
select * from MemberTable Where Day(Birthday) = '''+Day.text+''' and Month(Birthday) = '''+Month.text+'''
SQL获取本周本月本季度的记录的语句
前提条件:假设表名为:tableName;时间字段名为:theDate
①查询本周的记录
select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
②查询本月的记录
select * from tableName where DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
③查询本季的记录
select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
select datediff(day,dateadd(mm, datediff(mm,‘‘‘‘,getdate()), ‘‘‘‘),dateadd(mm, datediff(mm,‘‘‘‘,getdate()), ‘‘1900-02-01‘‘))
④查询本月记录的通用语句
SELECT * FROM [表名] WHERE (DATEPART(mm, 日期) = @month) AND (DATEPART(yy, 日期) = @year)
本周:select * from table where datediff(week,C_CALLTIME,getdate())=0 --C_CALLTIME 为日期字段
本月:select * from table where datediff(Month,C_CALLTIME,getdate())=0 --C_CALLTIME 为日期字段
本季:select * from table where datediff(qq,C_CALLTIME,getdate())=0
前半年1-6,后半年7-12:select * from table where datepart(mm,C_CALLTIME)/7 = datepart(mm,getdate())/7
以上是关于求高手解决:SQL语句查询本周内生日的同学,以及本月内生日的同学....的主要内容,如果未能解决你的问题,请参考以下文章
Sql Server中查询当天,最近三天,本周,本月,最近一个月,本季度的数据的sql语句