十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、创建测试表,create table test_date(v_date date);
创新互联总部坐落于成都市区,致力网站建设服务有成都网站制作、网站设计、外贸网站建设、网络营销策划、网页设计、网站维护、公众号搭建、成都小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
2、插入测试数据,
insert into test_date
select sysdate - level * 10 from dual connect by level 100
3、查询表中所有记录,select * from test_date,可以看到时间格式为年月日时分秒,
4、编写sql,将时间截取到年月,
select t.*,
to_char(v_date, 'yyyymm') v_date_mon1,
trunc(v_date, 'mm') v_date_mon2
from TEST_DATE t
oracle获得上个月的月份:
select
to_char(add_months(trunc(sysdate),-1),'yyyymm')
from
dual;
oracle获得下个月的月份:
select
to_char(add_months(trunc(sysdate),1),'yyyymm')
from
dual;
oracle获得上个月的第一天日期:
select
data_dt
,ADD_MONTHS(TRUNC(
to_date(data_dt,
'YYYY-MM-DD'),'MM'
),-1)
from
a_web_visit_origin;
oracle获得上个月的第一天日期(符合当地的日期格式):
select
data_dt
,TO_CHAR
(ADD_MONTHS(TRUNC(
to_date(data_dt,
'YYYY-MM-DD'),'MM'
),-1),'YYYY-MM-DD')
from
a_web_visit_origin;
oracle获得上个月当天日期:
select
data_dt
,TO_CHAR
(ADD_MONTHS(TRUNC(
to_date(data_dt,
'YYYY-MM-DD')
),-1),'YYYY-MM-DD')
from
a_web_visit_origin;
select
data_dt
,ADD_MONTHS(TRUNC(
to_date(data_dt,
'YYYY-MM-DD'),'MM'
),-1)
from
a_web_visit_origin;
oracle获得上个月的第一天日期(符合当地的日期格式):
select
data_dt
,TO_CHAR
(ADD_MONTHS(TRUNC(
to_date(data_dt,
'YYYY-MM-DD'),'MM'
),-1),'YYYY-MM-DD')
from
a_web_visit_origin;
oracle获得上个月当天日期:
select
data_dt
,TO_CHAR
(ADD_MONTHS(TRUNC(
to_date(data_dt,
'YYYY-MM-DD')
),-1),'YYYY-MM-DD')
from
a_web_visit_origin;
扩展资料:
日期和字符转换函数用法(to_date,to_char):
日期转化为字符串:select
to_char(sysdate,'yyyy-mm-dd
hh24:mi:ss')
as
nowTime
from
dual;
获取时间的年:
select
to_char(sysdate,'yyyy')
as
nowYear
from
dual;
获取时间的月: select
to_char(sysdate,'mm')
as
nowMonth
from
dual;
获取时间的日:select
to_char(sysdate,'dd')
as
nowDay
from
dual;
获取时间的时:select
to_char(sysdate,'hh24')
as
nowHour
from
dual;
获取时间的分:select
to_char(sysdate,'mi')
as
nowMinute
from
dual;
获取时间的秒:select
to_char(sysdate,'ss')
as
nowSecond
from
dual;
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
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'MM') AS 上月,
TO_CHAR(SYSDATE, 'MM') AS 本月,
TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'MM') AS 下月
FROM DUAL
获取月(两位):select to_char(sysdate,'mm') from dual
那你就把指定的日期to_date()成date,如下:
select to_char(to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'),'mm') from dual
1、因为oracle运行在Linux系统下,首先,要连接Linux系统。
2、切换到oracle安装用户下。 我的是 oracle。
3、运行oracle的环境变量, 以便输入相关命令。
4、进入oracle控制台。输入命令: sqlplus / as sysdba。
5、关闭数据库, 输入命令: shutdown immediate。