怎么写sql 查询近一年的记录
我写了一个sql语句把数据库里面所有的记录都查询出来了,怎么写条件查询上一年度的数据呢?(上年的7.1到今年的6.30),不能用一个具体的值...
我写了一个sql语句 把数据库里面所有的记录都查询出来了,怎么写条件查询上一年度的数据呢?(上年的7.1到今年的6.30),不能用一个具体的值
展开
展开全部
近一年分三种情况,以当前时间为中心,前后各半年;以当前时间为最后时间,查询当前时间前一年的数据;以当前时间为起始时间,查询后一年的数据。
语法分别如下:
1、以当前时间为中心,前后各半年
select * from 表名 where 时间字段 between dateadd(DAY,(-364/2),GETDATE()) and dateadd(DAY,(364/2),GETDATE());
2、以当前时间为最后时间,查询当前时间前一年的数据
select * from 表名 where 时间字段 between dateadd(DAY,-365,GETDATE()) and GETDATE() ;
3、以当前时间为起始时间,查询后一年的数据
select * from 表名 where 时间字段 between GETDATE() and dateadd(DAY,365,GETDATE());
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQLSERVER:select * from table where date between convert(datetime,'2010-07-01',121) and convert(datetime,'2011-06-30',121) + 0.999999
ORACLE:select * from table where data between to_date('2010-07-01','YYYY-MM-DD') and to_date('2011-06-30','YYYY-MM-DD') + 0.999999
+0.999999,因为日期是含有小时分秒的,所以如果不加的话,只能到截止那天的0点。
ORACLE:select * from table where data between to_date('2010-07-01','YYYY-MM-DD') and to_date('2011-06-30','YYYY-MM-DD') + 0.999999
+0.999999,因为日期是含有小时分秒的,所以如果不加的话,只能到截止那天的0点。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle:
select *
from table_name
where timecolumn between add_months(to_dae('20110630','yyyymmdd'),-12)+1 and to_dae('20110630','yyyymmdd')
用add_months函数减去12个月,再加一天
select *
from table_name
where timecolumn between add_months(to_dae('20110630','yyyymmdd'),-12)+1 and to_dae('20110630','yyyymmdd')
用add_months函数减去12个月,再加一天
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询