求高手解决: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获取本周本月本季度的记录的语句

Sql Server中查询当天,最近三天,本周,本月,最近一个月,本季度的数据的sql语句

MYSQL语句,union生成一个表无法update,求高手帮忙,谢谢

SQL 2005 查询本周/本月/本季度/本年的数据

Linq 语句换成 sql语句,求高手帮忙

sqlserver如何实现本周过生日的用户