繁体   English   中英

将查询从 SQL Server 转换为 Oracle

[英]Convert Query from SQL Server to Oracle

大家好,有人可以帮助我将此查询转换为适用于 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 <> ' '; 

此代码用于解码将用户从系统代码和更改日期中保存的 econded 字段。

只需进行一些更改,就可以将 Sql 置于 Oracle 风格中。

日期到字符串的 CONVERT 变为 TO_CHAR。
SUBSTRING 变为 SUBSTR。
+变成|| 或 CONCAT。
一个日期的 n 天 DATEADD 变为 date + n
ASCII 仍然是 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 <> ' '; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM