怎么写sql 查询近一年的记录
我写了一个sql语句把数据库里面所有的记录都查询出来了,怎么写条件查询上一年度的数据呢?(上年的7.1到今年的6.30),不能用一个具体的值...
我写了一个sql语句 把数据库里面所有的记录都查询出来了,怎么写条件查询上一年度的数据呢?(上年的7.1到今年的6.30),不能用一个具体的值
展开
展开全部
本回答被网友采纳
展开全部
近一年分三种情况,以当前时间为中心,前后各半年;以当前时间为最后时间,查询当前时间前一年的数据;以当前时间为起始时间,查询后一年的数据。
语法分别如下:
1、以当前时间为中心,前后各半年
1 | select * from 表名 where 时间字段 between dateadd( DAY ,(-364/2),GETDATE()) and dateadd( DAY ,(364/2),GETDATE()); |
2、以当前时间为最后时间,查询当前时间前一年的数据
1 | select * from 表名 where 时间字段 between dateadd( DAY ,-365,GETDATE()) and GETDATE() ; |
3、以当前时间为起始时间,查询后一年的数据
1 | 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个月,再加一天
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询