如何获得Oracle当前日期的年或月的第一天和最后一天

如何获得Oracle当前日期的年或月的第一天和最后一天,第1张

当月第一天trunc(sysdate,'MM')

当月最后一天last_day(trunc(sysdate,'MM'))

当年第一天trunc(sysdate,'YYYY')

当年最后一天last_day(add_months(trunc(sysdate,'YYYY'),11))

with t as

 (select rownum - 1 rn from dual connect by rownum <= 1000)

select to_char(add_months(trunc(sysdate), -rn), 'yyyy-mm')

  from t

 where to_char(add_months(trunc(sysdate), -rn), 'yyyy') between 2017 and 2018

 order by to_char(add_months(trunc(sysdate), -rn), 'yyyy-mm')

结果:

修改语句中2017和2018的地方就行,最大支持查询1000行数据,要是再多的话,修改语句第二行<=1000的那个位置。

Oracle中如何获取系统当前时间

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

ORACLE里获取一个时间的年、季、月、周、日的函数

select to_char(sysdate, 'yyyy' ) from dual; --年

select to_char(sysdate, 'MM' ) from dual; --月

select to_char(sysdate, 'dd' ) from dual; --日

select to_char(sysdate, 'Q') from dual; --季

select to_char(sysdate, 'iw') from dual; --周--按日历上的那种,每年有52或者53周

/

hh 小时(12)

hh24 小时(24)

Mi 分

ss 秒

D 周中的星期几

ddd 年中的第几天

WW 年中的第几个星期

W 该月中第几个星期 --每年的1月1号至1月7号为第一周,以此类推,每年53周

/

获取系统日期: SYSDATE()

格式化日期:

TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)

  或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual

select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual

而如果把上式写作:

select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual

则会报错,因为小时hh是12进制,14为非法输入,不能匹配。

转换的格式:

表示 year 的:

y 表示年的最后一位 、

yy 表示年的最后2位 、

yyy 表示年的最后3位 、

yyyy 用4位数表示年

表示month的:

mm 用2位数字表示月 、

mon 用简写形式, 比如11月或者nov 、

month 用全称, 比如11月或者november

表示day的:

dd 表示当月第几天 、

ddd 表示当年第几天 、

dy 当周第几天,简写, 比如星期五或者fri 、

day 当周第几天,全称, 比如星期五或者friday

表示hour的:

hh 2位数表示小时 12进制 、

hh24 2位数表示小时 24小时

表示minute的:

mi 2位数表示分钟

表示second的:

ss 2位数表示秒 60进制

表示季度的:

q 一位数 表示季度 (1-4)

另外还有ww 用来表示当年第几周 w用来表示当月第几周。

当前时间减去7分钟的时间

select sysdate,sysdate - interval '7' MINUTE from dual;

当前时间减去7小时的时间

select sysdate - interval '7' hour from dual;

当前时间减去7天的时间

select sysdate - interval '7' day from dual;

当前时间减去7月的时间

select sysdate,sysdate - interval '7' month from dual;

当前时间减去7年的时间

select sysdate,sysdate - interval '7' year from dual;

时间间隔乘以一个数字

select sysdate,sysdate - 8interval '7' hour from dual;

select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss:pm:dy') from dual; 年 月 日 24制小时 分 秒 上/下午 星期中文;

--获取11月天数--select to_char(last_day(to_date('2010-11-1','YYYY-MM-DD')),'DD') from dual;

--获取12月天数--select to_char(last_day(to_date('2010-12-1','YYYY-MM-DD')),'DD') 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、你这个020510 哪个是年,哪个是月,哪个是日?

2、date就一种格式,你看到的比如2014-01-01这种都只是date的一个显示方式

3、你要是想显示成你现在那样的

select replace('020510',',','-') from dual

可以先通过to_char将时间转换为字符串,之后通过to_date方式统一时间样式,这样就能灵活的获取时间的格式了。

sql:SELECT to_date(to_char(sysdate,'yyyy-mm-dd')||'23:59:59','yyyy-mm-dd hh24:mi:ss') FROM DUAL;

解释:以上语句就是获取到当前的最后时间点,在跳动一秒就会进入下一天。

备注:时间比较是距离1970年越远的那么时间就越大。

sqlserver:

select convert(varchar(7),dateadd(mm,-tnumber,getdate()),120)

from

(select number from masterspt_values where type='P') t

where year(dateadd(mm,-tnumber,getdate()))=year(getdate())

order by convert(varchar(7),dateadd(mm,-tnumber,getdate()),120)

oracle:

select to_char(add_months(sysdate, -trn), 'yyyy-mm')

  from dual a, (select rownum - 1 rn from dual connect by rownum <= 12) t

 where to_char(add_months(sysdate, -trn), 'yyyy') =

       to_char(sysdate, 'yyyy')

 order by to_char(add_months(sysdate, -trn), 'yyyy-mm')

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、之后在该界面中,点击左上角“新建查询”选项。

3、接着在该界面中,输入获取今年的上一年和下一年(去年与明年)的sql语句“select year(getdate())-1 AS "去年" , year(getdate())+1 AS "明年"”。

4、然后在该界面中,点击左上方“执行”按钮。

5、最后在该界面中,显示获取今年的上一年和下一年(去年与明年)成功。

以上就是关于如何获得Oracle当前日期的年或月的第一天和最后一天全部的内容,包括:如何获得Oracle当前日期的年或月的第一天和最后一天、Oracle:根据输入的年份得到从当年1月到当前月的所有年月时间、oracle数据库怎么表示时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10178758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存