有关Oracle 查询时间的记录 (1)

目录

  • 写在前面
  • 一、年、月、日、季、周
  • 二、EXTRACT 年、月、日
  • 三、上个星期一到星期天
  • 四、1分钟前、1小时前、1月前、1年前
  • 五、当月、上月、当天、前天

写在前面

在使用Oracle数据开发的时候,经常会使用到Oracle的日期的查询。

以下总结有关Oracle日期查询相关。

一、年、月、日、季、周

1.年

SELECT TO_CHAR(SYSDATE,'YYYY')||'年' FROM DUAL;

2.月

SELECT TO_CHAR(SYSDATE,'MM')||'月' FROM DUAL;

3.日

SELECT TO_CHAR(SYSDATE,'DD')||'日' FROM DUAL;

4.季

SELECT TO_CHAR(SYSDATE,'Q')||'季' FROM DUAL;

5.周

SELECT TO_CHAR(SYSDATE,'IW')||'周' FROM DUAL;

二、EXTRACT 年、月、日

1.年

SELECT EXTRACT(YEAR FROM SYSDATE)||'年' FROM DUAL;

2.月

SELECT EXTRACT(MONTH FROM SYSDATE)||'月' FROM DUAL;

3.日

SELECT EXTRACT(DAY FROM SYSDATE)||'日' FROM DUAL;

三、上个星期一到星期天

SELECT
TO_CHAR(SYSDATE,'yyyymmdd')-TO_NUMBER(TO_CHAR(SYSDATE,'d')-1)-6,
TO_CHAR(SYSDATE,'yyyymmdd')-TO_NUMBER(TO_CHAR(SYSDATE,'d')-1) FROM DUAL;

四、1分钟前、1小时前、1月前、1年前

1.一分钟前

SELECT TO_CHAR(SYSDATE-INTERVAL '1' MINUTE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

2.1小时前

SELECT TO_CHAR(SYSDATE-INTERVAL '1' HOUR,'YYYY-MM-DD HH:24:MI:SS') FROM DUAL;

3.1月前

SELECT TO_CHAR(SYSDATE-INTERVAL '1' DAY,'YYYY-MM-DD HH:24:MI:SS') FROM DUAL;

4.1年前

SELECT TO_CHAR(SYSDATE-INTERVAL '1' YEAR,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

五、当月、上月、当天、前天

1.当月

SELECT TO_CHAR(ADD_MONTHS(SYSDATE,0),'YYYY-MM-DD') FROM DUAL;

2.上月

SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYY-MM-DE') FROM DUAL;

3.当天

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;

4.前天

SELECT TOCHAR(SYSDATE-1,'YYYY-MM-DD') FROM DUAL;

原文地址:https://www.cnblogs.com/ZengJiaLin/p/11589459.html

时间: 2024-10-11 18:22:03

有关Oracle 查询时间的记录 (1)的相关文章

裴东辉-oracle查询一条记录,使用rownum。

oracle查询一条记录,使用rownum   select * from t_wry_jbxx   where  wryjc='PDH' and rownum<=1   order by wrybh DESC; 裴东辉-oracle查询一条记录,使用rownum.

Oracle 查询时间在当天的数据

要实现这个功能需要用到trunc这个函数对时间的操作 select trunc(sysdate) from dual --2014-12-27 今天的日期为2014-12-27 select trunc(sysdate, 'mm') from dual --2014-12-1 返回当月第一天. select trunc(sysdate,'yy') from dual --2014-1-1 返回当年第一天 select trunc(sysdate,'dd') from dual --2014-3-

ORACLE查询删除重复记录三种方法

本文列举了3种删除重复记录的方法,分别是rowid.group by和distinct,小伙伴们可以参考一下. 比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address =

Oracle查询DQL脚本记录

--查询列 Select t.sname,t.ssex,t.class from student t --t 别名; Select *from student t; --* 代表查询表内所有数据 Select *from student t where t.sclass='95031'; --规定判断条件t.sclass='95031',用where连接 Select t.sname as 姓名,t.ssex 性别,t.class 班级 from student t where t.sclass

MySQL查询,关于日期和时间戳,查询时间的记录

一. 日期与时间戳数据库日期写入大多数用的是时间戳格式,我们在查询的时候可能不是很方便mysql提供了两个函数: from_unixtime(time_stamp) -> 将时间戳转换为日期 mysql> select from_unixtime(create_time) from tag limit 10; +----------------------------+ | from_unixtime(create_time) | +----------------------------+

oracle 查询当天记录 三种方法效率比较

-- 查询一表中当天生成的数据 -- 原表mobilefrends中的cdate字段上有索引,创建索引语句是:create index mobilefrends_cdate_idx on mobilefrends(cdate); --------------------------------------------------------------------------------------------------------------------- -- 方法一:用to_char()

Oracle查询当前记录的上一条记录或下一条记录

//查询当前记录的 //oracle 上一条记录select decode(decode(txbs,'无',null,txbs),lag(t.txbs, 1, 0) over(order by t.cjid),'是','否')from qb_app_rycj t //下一条记录select t.id, lead(t.id, 1, 0) over(order by t.sort,t.eidt_date) as p from cms_article t

ORACLE查询并删除重复记录

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

oracle中根据当前记录查询前一条和后一条记录

select * from aa01_2014 where aaa001=(select c.p from (select aaa001,lag(aaa001,1,0)  over (order by aaa001) as p from aa01_2014) c where c.aaa001='8a9299ec522f54f401522f81eedc0007')  ; select * from aa01_2014 where aaa001=(select c.n from (select aa