oracle输入 date,只有时间输入的Oracle TO_DATE会根据什么逻辑添加日期组件?

本文介绍了Oracle数据库中关于TIME数据类型的一个非标准用法,通常TIME数据类型需要通过10407事件来启用。在未启用该事件时,可以使用时间字面量,但无法创建TIME类型的列。示例展示了如何启用10407事件以创建含TIME列的表,并进行插入和查询操作。
摘要由CSDN通过智能技术生成

日期数据类型的值始终具有日期和时间组件。如果您仅指定日期时间值的时间部分,则日期部分默认为当前月份的第一天。

另外也无证TIME文字和TIME数据类型(需要通过10407(日期时间TIME数据类型创建)事件启用),如果你需要使用并存储只是时间,没有日期部分。

这里是使用time文字和time数据类型的小示范。但它又是一个没有文档和不受支持的功能。

SQL> select time '11:32:00' as res

2 from dual;

res

------------------------

11.32.00.000000000 AM

您可以使用时间字面而不启用10407事件,但为了能够定义time数据类型的列的10407事件需要启用:

SQL> create table time_table(time_col time);

create table time_table(time_col time)

*

ERROR at line 1:

ORA-00902: invalid datatype

-- enable 10407 event

SQL> alter session set events '10407 trace name context forever, level 1';

Session altered.

现在我们可以创建列为time的表格数据类型:

SQL> create table time_table(time_col time);

Table created.

SQL> insert into time_table(time_col)

2 values(time '11:34:00');

1 row created.

SQL> select * from time_table;

TIME_COL

---------------

11.34.00 AM

SQL> alter session set events '10407 trace name context off';

Session altered.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值