oracle 2015.07转日期

2024年 5月 1日 72.3k 0

Oracle数据库中常用到日期时间的操作,而日期时间的转换是其中重要的一个操作,本文将介绍如何将Oracle中的日期时间类型转换为日期类型。

首先,我们来看看一个例子。

SELECT TO_DATE('2015-07-01 10:10:10', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

上面的SQL语句输出结果为:

2015-07-01

这里我们使用了Oracle的内置函数TO_DATE将一个字符串类型的日期转换为日期类型。

TO_DATE函数的第一个参数为待转换的日期字符串,第二个参数为转换格式化模板。

接下来看另外一个例子:

SELECT TO_DATE('2015-07-01', 'yyyy-mm-dd') FROM DUAL;

上面的SQL语句输出结果为:

2015-07-01

这个例子中的日期字符串只包含年月日,没有具体的时间,因此我们在第二个参数中只需要指定日期格式化模板就可以了。

如果我们想将一个包含时分秒的日期字符串转换为时间戳(即从1970年1月1日起的秒数),可以使用如下的SQL语句:

SELECT TO_TIMESTAMP('2015-07-01 10:10:10', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;

上面的SQL语句输出结果为:

01-JUL-15 10.10.10.000000000 AM

这个例子中我们使用Oracle的内置函数TO_TIMESTAMP将一个包含时分秒的日期转换为时间戳类型。

TO_TIMESTAMP函数的第一个参数为待转换的日期字符串,第二个参数为转换格式化模板。

在Oracle 12c之前版本中,内置函数TO_TIMESTAMP并不支持毫秒级别的时间戳转换,但可以使用TO_TIMESTAMP函数与CAST函数结合实现毫秒级别的时间戳转换。

下面的SQL语句将一个包含毫秒级别的时间戳转换为Oracle可以识别的日期时间格式:

SELECT CAST(TO_DATE('1970-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') + (1467374835221/86400000) AS TIMESTAMP) FROM DUAL;

上面的SQL语句输出结果为:

2016-07-01 13:00:35.221000000

其中CAST函数将日期类型转换为时间戳类型,TO_DATE函数将Unix时间戳的起始时间1970-01-01 00:00:00转换为日期类型,1467374835221/86400000的值就是毫秒级别时间戳除以一天的秒数,计算得到的结果再加上Unix时间戳的起始时间,就是要转换的日期时间。

总之,日期时间的转换常常用到,而Oracle自带的内置函数可以方便地进行日期时间转换,帮助我们更好地管理数据。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论