SQL语句根据日期查询(本周,本月,本年,今日相关统计)

  • 2019-01-09
  • 257
  • 0

按照日的时间来划分:

今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0
昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1
7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7
30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30
本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0
本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0

按照周的时间来划分:

昨天
select * from tb where datediff(day, 时间字段 ,getdate()) = 1
今天
select * from tb where datediff(day, 时间字段 ,getdate()) = 0
本周
select * from tb where datediff(week, 时间字段 ,getdate()) = 0
上周
select * from tb where datediff(week, 时间字段 ,getdate()) = 1
下周
select * from tb where datediff(week, 时间字段 ,getdate()) = -1

按照月的时间来划分:

上月
Select * From TableName Where DateDiff(month, DateTimCol, GetDate()) = 1
本月
Select * From TableName Where DateDiff(month, DateTimCol, GetDate()) = 0
下月
Select * From TableName Where DateDiff(month, GetDate(), DateTimCol ) = -1
本年
Select * From TableName Where DateDiff(year, GetDate(), DateTimCol ) = 0

举例:

1.GetDate() 用于sql server :select GetDate()
2.DateDiff(‘s’,’2005-07-20′,’2005-7-25 22:56:32′)返回值为 514592 秒
DateDiff(‘d’,’2005-07-20′,’2005-7-25 22:56:32′)返回值为 5 天
3.DatePart(‘w’,’2005-7-25 22:56:32′)返回值为 2 即星期一(周日为1,周六为7)
DatePart(‘d’,’2005-7-25 22:56:32′)返回值为 25即25号
DatePart(‘y’,’2005-7-25 22:56:32′)返回值为 206即这一年中第206天
DatePart(‘yyyy’,’2005-7-25 22:56:32′)返回值为 2005即2005年


引用自:https://www.cnblogs.com/xszjk/articles/5517360.html

感谢打赏!
支付宝

回复

还没有任何回复,你来说两句吧

发表回复