首页 > 数据库 >oracle时间类型、时区及其函数

oracle时间类型、时区及其函数

时间:2022-08-25 14:47:41浏览次数:88  
标签:sysdate 函数 timestamp interval 类型 dual oracle 时区 select

一、oracle时间类型

oracle有date、timestamp、interval year to month和interval day to sesond四种类型,可通过nls_date_format来设置我们想要的日期格式。

1、date存储年月日时分秒,固定存储7字节

select sysdate,current_date from dual;

2、timestamp除了存储年月日时分秒,还有小数秒,小数秒默认6位,timestamp(6)表示秒的小数点后面可以存储6位,后面还带有时区,是timestamp with time zone。

select systimestamp,current_timestamp from dual;

3、interval year[year_precision] to month存储年-月的时间间隔,通过year_precision来指定年的精度

interval '1' year时间间隔是1年;interval '14' month时间间隔是14个月;interval '0-5' year to month时间间隔是0年5个月;interval '123' year(3) to month时间间隔123年,精度为3位。

 参考链接:https://www.cnblogs.com/rusking/p/4599599.html

 

4、interval day[day_precision] to second[sec_precision]存储天-秒的时间间隔

interval '3' day时间间隔是3天;interval '2' hour时间间隔是2个小时;interval '123 2:25:45.12' day(3) to second(2)时间间隔是123天零2小时25分钟45.12秒,天的精度是3位,秒的精度是2位。

参考链接:https://www.cnblogs.com/cz-xjw/p/5177888.html

 

二、时区

地球自转是自西向东,故西方比东方时间晚,因此从西向东的时区是依次递增的,UCT+1->UCT+8...,东加西减,中国是东八区,英国是零时区,除了夏令时中国比英国快8个小时,因为夏令时英国把时间调快1小时,所以夏令时中国比英国快7小时。

1、sysdate是获取数据库所在操作系统的时间,与数据库或会话无关系,在session建立时与服务端同步。current_date返回数据库会话所设置的本地时区,在session建立时与客户端同步,可通过alter session set time_zone='+08:00'修改。

2、sessiontimezone与客户端session所在操作系统一直,可通过alter session set time_zone='+08:00'修改,dbtimezone为数据库的时区。

select sessiontimezone,dbtimezone from dual;

alter session set time_zone='+09:00';  //将时区从8区调整为东9区,current_date就是原来时间+1
select sysdate,current_date from dual;

 

三、相关函数

1、tz_offset()是oracle根据时区名称,返回时区与0时区相差的小时和分钟数。

select * from v$timezone_names;  //tzname是时区名称
select tz_offset('Asia/Shanghai'),tz_offset('America/New_York'),tz_offset('Europe/London')from dual; 
//查看上海、纽约、伦敦与0时区相差的分钟数,按理说伦敦应该是0时区,但夏令时会把时间往前调1个小时所以变成+1

 

2、from_tz()将时间戳和时区转换成具有时区值的时间戳

 select current_timestamp,from_tz(current_timestamp,'Asia/Shanghia') from dual;  //因为current_timestamp本身就带有时区,该语句会出现 expected TIMESTAMP got TIMESTAMP WITH TIME ZONE

第一个参数就是不带时区的时间戳,如果带时区就会出错

select from_tz(timestamp '2022-08-25 14:11:30','Asia/Shanghai') from dual;

 

3、to_timestamp将各类型的时间转为时间戳类

select to_timestamp('20220825','yyyy-mm-dd hh24:mi:ss.ff') from dual;

 

4、to_yminterval()将字符串类型转为 interval year to month类型,可用于年月的加减

select sysdate,sysdate+to_yminterval('02-08') in2y_8m,sysdate+to_yminterval('0-8')in8m from dual;  //算出与系统时间相差2年8个月,8个月的时间

 

5、to_dsinterval()将字符串类型转为inter day to second类型,可用于日-秒的加减

select sysdate,sysdate+to_dsinterval('31 08:12:25') ds1,sysdate+to_dsinterval('0 00:00:08')ds2 from dual;

 

标签:sysdate,函数,timestamp,interval,类型,dual,oracle,时区,select
From: https://www.cnblogs.com/muhai/p/16623341.html

相关文章

  • ArrayList集合存储基本数据类型
    ArrayList集合存储基本数据类型 如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”基本类型包装类byteByteshor......
  • Mysql---函数
    《字符串相关函数》  《数学相关函数》  《时间相关函数》        ......
  • 语法错误 : 缺少“;”(在“类型”的前面)
    今天用老版的vs写C写到怀疑人生。。。一个简单的for循环就报n个错误。。。我愣是看了一行简单的代码看了好久,看到怀疑我不会写代码。。。后来bing了一下才发现,原来老版......
  • python基础——函数
    函数函数就是将一段具有独立功能的代码块整合到一个整体并命名在需要的位置调用这个名称即可完成对应的需求。函数在开发过程中,可以更高效的实现代码重用。先定义后......
  • netcore项目的 dll 用在netframework项目的乌龙错误,异常类型:TargetInvocationExcepti
    数据保存插入时报错    1:多个win7 客服机 , 只有一台全部报错. 2:是局域网连本地数据库,还有个远程sqlserver数据库两者都存在问题.测试时本机都无数......
  • Sass预处理器 常见函数的基本使用
    Sass提供了许多内置模块,其中包含有用的函数(以及mixin)。这些模块可以像任何用户定义的样式表一样使用@use规则加载,它们的函数可以像任何其他模块成员一样调用。所有内置模块......
  • bug的几种类型分类
    类型名称描述备注类型名称描述备注业务逻辑主要的业务流程走不通,出现错误,比如新增保存不成功........ 功能操作一些功能按钮无法进行操作,没反......
  • Verilog中函数function写法使用方法
    function写法function的标准写法如下:  函数的语法为:.定义函数时至少要有一个输入参量;可以按照ANSI和module形式直接定义输入端口。例如:function[63:0]alu(input[......
  • TS定义类型
    exporttypeOrcInsuranceRecordsTypeBarForm={ id?:number carNumber?:string subCompanyId?:string remarkDesc?:string insuranceVos?:{  i......
  • Java函数式编程
    函数式编程-Stream流1.概述1.1为什么学?能够看懂公司里的代码大数量下处理集合效率高代码可读性高消灭嵌套地狱//查询未成年作家的评分在70以上的书籍由于洋流......