簡體   English   中英

如何計算日期之間的天數

[英]How to count the number of days between dates

我目前正在研究一個項目,我正在尋找輸出,我需要計算約會和操作之間的天數,目前我有這個

Select Patient_FirstName ||' '|| Patient_surname "Patient Name", appointment_date, OPeration_date, datediff(Appointment_Date,Operation_Date) "Days till operation"
from PatientRecord p , Patient b, Appointment a, Operation o
where p.patient_ID = b.Patient_ID
and p.appointment_ID = a.appointment_ID
and p.operation_ID = o.OPeration_ID
order by Patient_Surname;

這只是返回一個無效的標識符,

當我整月工作正常時,但我需要幾天

Select Patient_FirstName ||' '|| Patient_surname "Patient Name", appointment_date, OPeration_date, Round (months_between(Appointment_Date,Operation_Date)) "Days till operation"
from PatientRecord p , Patient b, Appointment a, Operation o
where p.patient_ID = b.Patient_ID
and p.appointment_ID = a.appointment_ID
and p.operation_ID = o.OPeration_ID
order by Patient_Surname;

那就是我整整幾個月的時間,幾天里我還能做些類似的事情嗎?

首先, 切勿FROM子句中使用逗號。 始終使用正確的顯式JOIN語法。

在Oracle中,您可以減去日期:

Select Patient_FirstName ||' '|| Patient_surname as "Patient Name",
       appointment_date, Operation_date,
       trunc(Operation_Date - Appointment_Date) as "Days till operation"
from PatientRecord pr join
     Patient p
     on pr.patient_ID = p.Patient_ID join
     Appointment a
     on pr.appointment_ID = a.appointment_ID join
     Operation o
     on pr.operation_ID = o.Operation_ID
order by Patient_Surname;

如果appointment_date2017-01-01 2017-01-01 14:30:00operation_date2017-01-01 4日2017-01-04 09:30:00則時差為2天21小時,但您可能希望將此值作為2017-01-01之間的時差進行比較2017-01-012017-01-04並顯示為3天(而不是2天),因此:

Select Patient_FirstName ||' '|| Patient_surname AS "Patient Name",
       appointment_date,
       OPeration_date,
       TRUNC( Operation_Date ) - TRUNC ( Appointment_Date ) AS "Days till operation"
from   PatientRecord p
       INNER JOIN Patient b
       ON ( p.patient_ID = b.Patient_ID )
       INNER JOIN Appointment a
       ON ( p.appointment_ID = a.appointment_ID )
       INNER JOIN Operation o
       ON ( p.operation_ID = o.OPeration_ID )
order by Patient_Surname;

您還可以使用:

CEIL( Operation_Date - Appointment_Date ) AS "Days till operation"

嘗試這個:

Select DateDiff(d,Appointment_Date,Operation_Date) as [Days till operation]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM