首页 搞笑

oracle时间转换成字符串 oracle时间格式转换字符串

时间:2023-09-13 20:01:05 栏目:搞笑

大家好,来来为大家解答以下问题,oracle时间转换成字符串 oracle时间格式转换字符串很多人还不知道,现在让我们一起来看看吧!

oracle日期类型字段的好处:

  1. 数据规范。date对合法日期型会校验,包括闰年2月这种。避免字符型变量产生的某月32号,日期长度不对,日期格式不统一等问题。例如:2023331
  2. 检索效率。日期索引比字符串快。
  3. 计算方便。数据库对日期提供了很多的可以使用的函数,对于日期的运算十分方便。

测试环境oracle 18c有效

1 日期转换函数

  TO_DATE(x , format)用于将字符串x转换为时间值,该函数可以指定一个可选的字符串format参数来说明x的格式,to_date("要转换的字符串","转换的格式")

1.1 例子

1--日期转换一般使用方法,这么写最简单,两个结果一样-- 返回结果:2023-12-25select to_date(20231225,u0026#39;yyyymmddu0026#39;),to_date(u0026#39;20231225u0026#39;,u0026#39;yyyy-mm-ddu0026#39;) ,to_date(20231225,u0026#39;yyyy/mm/ddu0026#39;) ,to_date(u0026#39;2023/12/25u0026#39;,u0026#39;yyyy-mm-ddu0026#39;) , to_date(u0026#39;2023-12-25u0026#39;,u0026#39;yyyy/mm/ddu0026#39;) ,to_date(u0026#39;2023/12/25u0026#39;,u0026#39;yyyy/mm/ddu0026#39;) ,from dual  总结:日期 中间加- /  时需要加引号,格式 必须加引号,日期加- / 时格式需要加- /2---- 返回结果:2023-12-25 13:25:59  --hh后面的24如果去掉会报错。去掉24那么hh(13)不能大于12 select to_date(u0026#39;20231225,13:25:59u0026#39;,u0026#39;yyyymmdd,hh24:mi:ssu0026#39;) from dual  3 -- 查询当前系统时间。 sysdate:系统时间 select  sysdate  from dual  -- 返回结果:2023-05-04 12:30:50说明: 表示year的:y  表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年表示month的:mm 用2位数字表示月; 表示day的:dd 表示当月第几天;ddd表示当年第几天;dy 当周第几天 表示hour的:hh 2位数表示小时 12进制; hh24 2位数表示小时 24小时表示minute的:mi 2位数表示分钟   表示second的:ss 2位数表示秒 60进制

1.2 date单独使用

--返回结果2023-07-08select  date u0026#39;2023-07-08u0026#39; from dual 

2、 to_char() 函数(俗称:字符串转换函数)

to_char(日期,"转换格式" ) //即把给定的日期按照“转换格式”转换。

2.1 例子

转换系统时间 select to_char(sysdate, u0026#39;yyyyu0026#39;) 年,       to_char(sysdate, u0026#39;mmu0026#39;) 月,       to_char(sysdate, u0026#39;DDu0026#39;) 日,       to_char(sysdate, u0026#39;HH24u0026#39;) 时,       to_char(sysdate, u0026#39;MIu0026#39;) 分,       to_char(sysdate, u0026#39;SSu0026#39;) 秒,       to_char(sysdate, u0026#39;DAYu0026#39;) 天,       to_char(sysdate, u0026#39;Qu0026#39;) 第几季度,       to_char(sysdate, u0026#39;Wu0026#39;) 当月第几周,       to_char(sysdate, u0026#39;WWu0026#39;) 当年第几周,       to_char(sysdate, u0026#39;Du0026#39;) 当周第几天,       to_char(sysdate, u0026#39;DDDu0026#39;) 当年第几天      from dual;

3,其他日期函数

,x代表日期字段,x=to_date(u0026#39;2023-05-11u0026#39;,u0026#39;yyyy-mm-ddu0026#39;)

--某天是星期几select to_char(to_date(u0026#39;2023-05-11u0026#39;,u0026#39;yyyy-mm-ddu0026#39;),u0026#39;DAYu0026#39;) from dual;-- last_day() 函数 :每月最后一天select  last_day(x) from dual;--每某月第一天select  trunc(x,u0026#39;monthu0026#39;)  from dual;--某年第一天select  trunc(x,u0026#39;yearu0026#39;)  from dual;--找出今年的天数:select add_months(trunc(sysdate,u0026#39;yearu0026#39;),12)-trunc(sysdate,u0026#39;yearu0026#39;) from dual;--月计算函数;add_months(d,n)在某一个日期d上,加上指定的月数n,n可以是任意整数。-2表示减去两个月,返回计算后的新日期select SYSDATE,add_months(SYSDATE,-2),add_months(sysdate,2) from dual;--计算两个日期间的天数  floor()函数:select  floor(to_date(u0026#39;2023-05-03u0026#39;,u0026#39;yyyy-mm-ddu0026#39;)-to_date(20180501,u0026#39;yyyymmddu0026#39;) from dual;-- 当前时间减去7分钟的时间 select sysdate,sysdate - interval u0026#39;7u0026#39; MINUTE from dual -- 当前时间减去7小时的时间 select sysdate - interval u0026#39;7u0026#39; hour from dual -- 当前时间减去7天的时间 select sysdate - interval u0026#39;7u0026#39; day from dual -- 当前时间减去7月的时间 select sysdate,sysdate - interval u0026#39;7u0026#39; month from dual -- 当前时间减去7年的时间 select sysdate,sysdate - interval u0026#39;7u0026#39; year from dual -- 时间间隔乘以一个数字 select sysdate,sysdate - 8*interval u0026#39;7u0026#39; hour from dual-- 在当前时间加一月 或 一年select sysdate,add_months(sysdate,12) from dual;   --加1年select sysdate,add_months(sysdate,1) from dual;  --加1月-- 在当前时间加一天 或 一小时select sysdate+N from dual;  -- sysdate+1  加一天;  sysdate+1/24  加1小时;)--extract(datetime)该函数可以从指定的时间当中提取指定的日期部分,例如从给定的日期得到年、月、分等数据。select extract(year from sysdate ) as 年,extract(month from sysdate ) as 月,extract(day from sysdate ) as 日,extract(hour from timestamp u0026#39;2022-11-02 10:10:10u0026#39;) as 小时,extract(minute from timestamp u0026#39;2022-11-02 11:11:11u0026#39;) as 分钟,extract(second from timestamp u0026#39;2022-11-02 11:11:12u0026#39;) as 秒from dual;

本文到此结束,希望对大家有所帮助。

相关文章