2012-08-24 111 views
0

在oracle中是否有任何等價的東西函數?我用東西功能MSSQL轉換的原始日期時間(以字符串格式),以適當的日期時間 MSSQL查詢在oracle中有可用的stuff()函數嗎?

select convert(datetime, 
     '20'+substring(stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950') , 3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),7,2)+'-' 
     +SUBSTRING(stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950'),3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),4,2)+'-' 
     +SUBSTRING (stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950'), 3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),1,2) 
     + SUBSTRING(stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950'),3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),9,15)) 

在上述查詢「24051103084950」是原始數據,其是在ddmmyyhhmiss格式。上述查詢的輸出如下

(No column name) 
2011-05-24 03:08:40.000 

我需要將相同的查詢轉換爲oracle。指導我去做。

+0

你試過Google的標題嗎? –

+0

http://stackoverflow.com/questions/2108194/oracle-equivalent-to-sql-server-stuff-function –

+0

是的,我試過了,它返回一些用戶定義的函數,而不是查詢或等價的預定義函數:-( –

回答

1

你可以使用時間戳/串轉換功能來簡化這個:

select to_char(
     to_timestamp('24051103084950', 'DDMMYYHH24MISSFF2'), 
     'YYYY-MM-DD HH24:MI:SS.FF3') 
    from dual 

注: FF2是毫秒到2位,FF3是毫秒到3位。

+0

- 非常感謝! –

相關問題