SQL:将数字转换为时间
我有一个数据库列,它具有以下值SQL:将数字转换为时间,sql,oracle,Sql,Oracle,我有一个数据库列,它具有以下值 column (hh/mm/ss) 042336 050623 现在使用sql,我想将其转换为 column 04:23:63:000 05:06:23:000 我一直在尝试使用date函数,但没有成功。您有一个字符串,因此可以使用字符串操作插入其他字符: select (substr(x, 1, 2) || ':' || substr(x, 3, 2) || ':' || substr(x, 5, 2) || ':000') from (select '04
column (hh/mm/ss)
042336
050623
现在使用sql,我想将其转换为
column
04:23:63:000
05:06:23:000
我一直在尝试使用date函数,但没有成功。您有一个字符串,因此可以使用字符串操作插入其他字符:
select (substr(x, 1, 2) || ':' || substr(x, 3, 2) || ':' || substr(x, 5, 2) || ':000')
from (select '042336' as x from dual) t
什么是
:000
?它是毫秒数…我想附加它,因为000您的原始列是CHAR/VARCHAR还是其他?整数不能有前导0
此处不允许使用“maybe:)。首先找出你的列类型。如果VARCHAR@GordonLinoff的答案不是字符串,那么他有一个整数;)这似乎是一种粗暴的方式……是否可以通过to_date或to_Timestamp来执行?如果您不将日期/时间值存储在正确的声明类型列中,它总是以粗暴的方式结束。这是一开始不做这件事的主要原因place@ThomasG . . . 整数不是以0
开头的。此外,Oracle没有time
数据类型,因此这里没有很多选择。