我的数据包括字符串和数字变量。我正在寻找的结果子集中数据类型为“ VARCHAR2”,所有时间戳均为数字。我如何获取查询(在SQL Developer / Oracle上)以可读的日期/时间显示
sql的新手,所以请帮忙!
select CONVERT(VARCHAR2(26 Char),GETDATE(med.poetimestamp),108)
ORA-00936:缺少表达 00936. 00000-“缺少表达式”
答案 0 :(得分:2)
您的poetimestamp列在图片中似乎是Unix Timestamp类型,因此可以使用以下select语句:
select date'1970-01-01' + m.poetimestamp / 86400
from med m;
convert()
和getdate()
函数是SQL Server的特殊功能。
答案 1 :(得分:0)
您说“数据同时包含:2000-03-20:23:12:29.176262和991010049中的日期/时间”。您必须为这两种情况明确编写代码。如果还有其他情况,则必须为每种情况编写代码。
我感到奇怪的是,日期部分和时间部分之间有一个冒号。这是真实的还是类型?我假设它是真实的,但是我希望您可以自己更改格式。
with data(x) as (
select '2000-03-20:23:12:29.176262' from dual
union all
select '991010049' from dual
)
select case
when substr(x,5,1) = '-' then to_timestamp(x, 'yyyy-mm-dd:hh24:mi:ss.ff')
else cast(date '1970-01-01' + numtodsinterval(x, 'second') as timestamp)
end ts
from data;
TS
-----------------------------
2000-03-20 23:12:29,176262000
2001-05-28 00:34:09,000000000
最好的问候, 炖阿什顿