大家好,有人可以帮助我将该查询转换为可在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 <> ' ';
此代码用于解码可将用户从系统编码和更改日期中拯救出来的特定字段。
转换为字符串的日期成为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 <> ' ';