首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oracle数据库表中存储双冒号值

问如何在oracle数据库表中存储双冒号值
EN

Stack Overflow用户
提问于 2021-09-03 14:51:05
回答 2查看 100关注 0票数 0

我有excel,我正在尝试导入oracle数据库表。

excel中的一些值包括带有双冒号的14:39.5。我应该在oracle数据库表中提供哪些数据来存储这个值?

当前已将varchar数据类型及其在导入期间抛出的错误提供如下:

代码语言:javascript
复制
Conversion error! Value: "00:12:01.615518000" to data type: "Number". Row ignored! Value is '00:12:01.615518000'. Cannot be converted to a decimal number object. Valid format: 'Unformatted'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-03 16:33:03

您可以将其存储为INTERVAL DAY(0) TO SECOND(9)数据类型:

代码语言:javascript
复制
CREATE TABLE table_name (
  time INTERVAL DAY(0) TO SECOND(9)
);

然后,您可以使用TO_DSINTERVAL传递值,并将'0 '加到开头:

代码语言:javascript
复制
INSERT INTO table_name (time)
VALUES ( TO_DSINTERVAL('0 ' || '00:12:01.615518000') );

db<>fiddle https://dbfiddle.uk/?rdbms=oracle_18&fiddle=2a516c1bbb6954ea13831d2b84149aeb

票数 2
EN

Stack Overflow用户

发布于 2021-09-03 15:20:55

如果它是日期/时间戳的一部分,则如果可以添加日期组件,则可以将其存储为DATE或TIMESTAMP。Oracle不只是一个TIME数据类型。

如果不能向它添加日期组件,那么假设它是一个时间间隔,则可以将其转换为秒或微秒(丢失冒号),并将其存储为NUMBER。

如果您想要保持正确的格式,您唯一的选择是使用VARCHAR2或类似的东西将其存储为文本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69046866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档