我的“出生日期”在
DD-MMM-YY
格式和“截止日期”
DD-MM-YYYY
SQL Server查询中的格式我必须根据上述“截止日期”的数据来确定一个人的年龄。我创造了如下逻辑来确定年龄当我在oracle服务器上运行它时,它工作得很好。
select
case
when trunc(months_between(TRUNC(TO_DATE('08-05-2019', 'dd-mm-yy')), to_date(CM.MMRBRY, 'DD-mm-YY')) / 12) > 0
then trunc(months_between(TRUNC(TO_DATE('08-05-2019', 'dd-mm-yy')), to_date(CM.MMRBRY, 'DD-mm-YY')) / 12)
else (99 + trunc(months_between(TRUNC(TO_DATE('08-05-2019', 'dd-mm-yy')), to_date(CM.MMRBRY, 'DD-mm-YY')) / 12))
end as AGE
from
LIIL_SA.COMPRLMMR CM
但是我需要使用Open query从SQL Server调用这个查询当我使用下面的代码从SQL Server上的“打开查询”执行此操作时,会得到一个错误。
set @Query = @Query + ' case when trunc(months_between(TRUNC(TO_DATE(''''' + @AsOnDate + ''''',''''dd-mm-yy'''')),to_date(CM.MMRBRY,''''DD-mm-YY''''))/12)>0 then '
set @Query = @Query + ' trunc(months_between(TRUNC(TO_DATE(''''' + @AsOnDate + ''''',''''dd-mm-yy'''')),to_date(CM.MMRBRY,''''DD-mm-YY''''))/12) '
set @Query = @Query + ' else (99+trunc(months_between(TRUNC(TO_DATE(''''' + @AsOnDate + ''''',''''dd-mm-yy'''')),to_date(CM.MMRBRY,''''DD-mm-YY''''))/12)) end as AGE '
错误是:
链接服务器“ASSURANCE”的OLE DB访问接口“ORA OLE DB.Oracle”返回消息“ORA-01861:文本与格式字符串不匹配”。
链接服务器“ASSURANCE”的OLE DB访问接口“ORA OLE DB.Oracle”返回消息“ORA-01861:文本与格式字符串不匹配”。
请帮助我解决这个问题或提供其他方法来计算正确的年龄