我正尝试减去两个日期并获得一个integer
值作为回报。我似乎遇到了障碍,因为两个日期之一为null,随后返回错误。有什么解决方法吗,如果review_date为空,我渴望得到ageing_date。
select to_date(sysdate)aging_date,to_char(review_date,'MM/DD/YYYY')review_date
from mytable
aging_date review_date
2/26/2020 01/05/2020
2/26/2020 05/15/2018
2/26/2020
2/26/2020 03/14/2019
2/26/2020 12/17/2019
select aging_date,review_date,(aging_date - review_date)actual_date from
(
select
to_date(sysdate)aging_date,to_char(review_date,'MM/DD/YYYY')review_date,
(aging_date - review_date)actual_date from mytable
)new
ORA 01722: Invalid Number
答案 0 :(得分:2)
您必须转换#========================================================================
#=== Update these variables for your resources. ===
#========================================================================
ResourceGroupName=SignalRTestResources
SignalRServiceResource=mySignalRresourcename
WebAppName=myWebAppName
# Get the SignalR primary connection string
primaryConnectionString=$(az signalr key list --name $SignalRServiceResource \
--resource-group $ResourceGroupName --query primaryConnectionString -o tsv)
#Add an app setting to the web app for the SignalR connection
az webapp config appsettings set --name $WebAppName \
--resource-group $ResourceGroupName \
--settings "Azure__SignalR__ConnectionString=$primaryConnectionString"
列中的varchar2
列。
DATE
减去select aging_date,review_date,
(aging_date - to_date(review_date,'mm/dd/yyyy')) actual_date
from tab;
AGING_DATE REVIEW_DAT ACTUAL_DATE
------------------- ---------- -----------
26.02.2020 00:00:00 01/05/2020 52
26.02.2020 00:00:00 05/15/2018 652
26.02.2020 00:00:00
26.02.2020 00:00:00 03/14/2019 349
26.02.2020 00:00:00 12/17/2019 71
和DATE
会得到VARCHAR2
ORA-01722: invalid number
答案 1 :(得分:1)
目标是选择老化日期,审阅日期和difference = (aging_date - review_date)
。查询选择aging_date
和审阅日期,并针对日期差异,case语句仅在aging_date
和review_date
不是null
时计算差异。您还可以在这里使用if - end if
块代替大小写:
select
aging_date,
review_date,
(case when aging_date is not null and review_date is not null then (aging_date - review_date) end )actual_date
from mytable;
答案 2 :(得分:0)
尝试一下。如果没有review_date(应该从自身中减去ageing_date),则应返回零值
select aging_date,
review_date,
(aging_date - nvl(review_date,aging_date)) actual_date from mytable
有关NVL函数的文档。