十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、创建测试表,
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了东台免费建站欢迎大家使用!
create table test_date_2(id int, v_date date);
2、插入测试数据
insert into test_date_2 values(1,sysdate);
insert into test_date_2 values(2,sysdate-20);
insert into test_date_2 values(3,sysdate-30);
insert into test_date_2 values(4,sysdate-40);
commit;
3、查询表中全量数据,select t.* from test_date_2 t;
4、编写语句,查询当月份的上一个月;
select t.*, add_months(v_date,-1) v_date2 from test_date_2 t;
where DETECTtime between to_date('20081123 010000','YYYYMMDD HH24MISS') and to_date('20081223 015959','YYYYMMDD HH24MISS')
设:
1、数据表名称为:TABLE1
2、TABLE1中的date字段名为:COLUMN1
获取去年到今年的上月底的数据的SQL如下:
select *
from TABLE1 t
where t.COLUMN1 = add_months(trunc(sysdate,'YYYY'),-12)
and t.COLUMN1 trunc(sysdate,'MM')
select ta.a, ta.b, ta.c, tb.d from table_name ta, table_name tb where to_date(ta.d,'yyyymmdd') = to_date(tb.d,'yyyymmdd') - 1;
1、查询确定年月的数据,使用to_date或to_char都可以实现
SELECT * FROM 表名
WHERE TO_CHAR(日期列,'YYYY-MM') = TO_CHAR('2013-06','YYYY-MM') 或者
SELECT * FROM 表名
WHERE 日期列 = TO_Date('2013-06','YYYY-MM')
2、查询前一个月
select concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-'),'01 00:00:00')start_time,
concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-')||to_char(LAST_DAY(sysdate),'dd '),'23:59:59') end_time from dual
3、查询前一天
select to_char(sysdate-1,'yyyy-mm-dd ')||'00:00:00' start_time,to_char(sysdate-1,'yyyy-mm-dd ')||'23:59:59' end_time from dual