DATEDIFF( datepart , startdate , enddate )
startdate=日期字段名称
--查询 今日
select * from tableA where DateDiff(dd,datetime类型字段,getdate())= 0
--查询 昨日
select * from tableA where DateDiff(dd,times,getdate())= 1
--查询 本周
select * from tableA where DateDiff(dd,VoucherDate,getdate())<=7
--查询 上周
select * from tableA where DateDiff(dd,VoucherDate,getdate())>7 and DateDiff(dd,VoucherDate,getdate())<=14
--查询 本月
select * from tableA where DateDiff(mm,VoucherDate,getdate())= 0
--查询 上月
select * from tableA where DateDiff(mm,VoucherDate,getdate())= 1
--查询 本年
select * from tableA where DateDiff(yy,VoucherDate,getdate())= 0
--查询 上一年
select * from tableA where DateDiff(yy,VoucherDate,getdate())= 1
这可能需要自定义一个过程procedure了
delimiter $$drop procedure if exists wk
create procedure wk()
begin
declare i int
set i = 1
while i <= 7 do
select date_add(date_sub("2018-09-03",interval 7 day),interval i day)
set i = i + 1
end while
end $$
delimiter
call wk()
注意
date_sub()是减少日期的函数
date_add()是增加日期的函数
获取当前时间函数 select getdate()获取去年的这一天 select dateadd(year, -1, getdate())
获取去年这一天的前7天select dateadd(day, -7, dateadd(year, -1, getdate()))
要获取去年这7天的数据,可以用上面的函数去组合查询。
但是,在查询条件里面使用函数这种方式很影响查询效率。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)