千家信息网

Oracle中的日期类型

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,1,SYSDATE 获取当前系统时间select SYSDATE from dual;格式化日期: TO_CHAR(SYSDATE,'YY/MM/DD HH24:MI:SS)或 TO_DATE(SYS
千家信息网最后更新 2024年11月23日Oracle中的日期类型

1,SYSDATE 获取当前系统时间

select SYSDATE from dual;

格式化日期: TO_CHAR(SYSDATE,'YY/MM/DD HH24:MI:SS)
或 TO_DATE(SYSDATE,'YY/MM/DD HH24:MI:SS)

转换的格式:

表示 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进制
hh34 2位数表示小时 24小时

表示minute的:mi 2位数表示分钟

表示second的:ss 2位数表示秒 60进制

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

select to_char(sysdate,'q') from dual;

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

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

24小时制下的时间范围:00:00:00-23:59:59
12小时制下的时间范围:1:00:00-12:59:59

2,ADD_MONTHS(d,) 将给定的日期增加月份

select sysdate,add_months(sysdate,12) from dual; --加1年
select sysdate,add_months(sysdate,1) from dual; --加1月

select sysdate,add_months(sysdate,-12) from dual; --减1年
select sysdate,add_months(sysdate,-1) from dual; --减1月


3,LAST_DAY(d) 可以返回指定月份的最后一天

select last_day(sysdate) from dual;

4, MONTHS_BETWEEN(d1,d2) 返回两个日期之间的月份

select months_between(sysdate,to_date('2017/12/31','yyyy/mm/dd')) from dual;

5, NEW_TIME(d,tz1,tz2)

d是一个数据类型,当tz1的日期和时间是d时,返回时区tz2中的日期和时间,tz1和tz2都是字符串。

时区1 时区2 说明
AST ADT 大西洋标准时间
BST BDT 白令海标准时间
CST CDT 中部标准时间
EST EDT 东部标准时间
GMT 格林尼治标准时间
HST HDT 阿拉斯加-夏威夷标准时间
MST MDT 山区标准时间
NST 纽芬兰标准时间
PST PDT 太平洋标准时间
YST YDT YUKON标准时间

select to_char(sysdate,'yyyy/mm/dd hh34:mi:ss') 北京

to_char(new_time(sysdate,'PDT','GMT'),'yyyy/mm/dd hh34:mi:ss') 洛杉矶 from dual;

6, NEXT_DAY(d,string)

计算在日期d后满足由string给出的条件的第一天.String使用位置;当前会话的语言指定了一周中的某一天.
返回值的时间分量与d的时间分量是相同的. String的内容可以忽略大小写.
select next_day('17-9月-2012','星期六') next_day from dual;

7, ROUND(d[,format])
将日期d按照由format指定的格式进行处理.如果没有给format则使用缺省设置'DD'.

8, TRUNC(d,format)
计算截尾到由format指定单位的日期d.可以使用位置:格式和效果.缺省参数同ROUNG.
trunc(date,fmt)按照给出的要求将日期截断,如果fmt='mi'表示保留分,截断秒
select to_char(trunc(sysdate,'hh'),'yyyy/mm/dd hh34:mi:ss') HH,
to_char(trunc(sysdate,'mi'),'yyyy/mm/dd hh34:mi:ss') HHMM,
to_char(trunc(sysdate,'dd'),'yyyy/mm/dd hh34:mi:ss') DD,
to_char(trunc(sysdate,'mm'),'yyyy/mm/dd hh34:mi:ss') MM from dual;


0