我需要一些帮助,将由管道分隔的军事时间转换为标准时间。另外我想知道是否可以将管道解码为一周中的某一天。
当我查询客户营业时间时,我会得到以下结果:
|0900|1800|0900|1800|0900|1800|0900|1800|0900|1800|0900|1300||
第一个管道等于星期一开放,第二个管道等于星期一关闭。第三个管道等于周二开放,第四个周二关闭等等。
我希望看到的是
Monday: 9:00am - 6:00pm,
Tuesday: 9:00am - 6:00pm,
Wednesday: 9:00am - 6:00pm,
Thursday: 9:00am - 6:00pm,
Friday: 9:00am - 6:00pm,
Saturday: 9:00am - 1:00pm,
Sunday: Closed.
这可以在Oracle中转换吗?
select hours_of_operation
from customer_listing
where listing_id = '255990748'
答案 0 :(得分:0)
这是一个SQLFiddle,可以帮助您入门。第一天是:
select 'Monday: '||
to_char(to_date(substr(hours_of_operation,2,4),'HH24MI'),'HH12:MIAM')
||'-' ||
to_char(to_date(substr(hours_of_operation,7,4),'HH24MI'),'HH12:MIAM')
from test
然后只需添加,然后移动子字符串函数索引。
更新:我刚刚意识到这只适用于固定字段。如果你错过了一天,它将会失败。这确实需要编写一个函数来处理一些解析逻辑。