将查询从SQL Server转换为Oracle

问题描述 投票:-1回答:1

大家好,有人可以帮助我将该查询转换为可在Oracle上使用吗?

SELECT CONVERT(VARCHAR(10), 
CAST(DATEADD(DAY,CONVERT(INT, 
Convert(nvarchar(50),(ASCII(SUBSTRING(A1_USERLGI,12,1)) - 50))+Convert(nvarchar(50),(ASCII(SUBSTRING(A1_USERLGI,16,1)) - 50))), 
'1996-01-01') AS DATETIME),103) FROM SA1010 where A1_USERLGI <> ' '; 

此代码用于解码可将用户从系统编码和更改日期中拯救出来的特定字段。

sql oracle
1个回答
0
投票
只需稍作更改,即可将SQL放入Oracle风格。

转换为字符串的日期成为TO_CHAR。SUBSTRING变为SUBSTR。+变为||或CONCAT。到日期的n天DATEADD变为date + nASCII仍然是ASCII。CAST都适用。

SELECT TO_CHAR((CAST('01-JAN-1996' AS DATE) + CAST(CONCAT((ASCII(SUBSTR(A1_USERLGI, 12, 1))-50), (ASCII(SUBSTR(A1_USERLGI, 16, 1))-50)) AS NUMBER)), 'DD/MM/YYYY') AS dt FROM SA1010 where A1_USERLGI <> ' ';

© www.soinside.com 2019 - 2024. All rights reserved.