Crystal Reports for Rational Application Developer 設計工具指南

DateDiff

範例
使用 DateDiff 配合 "d" 或 "y" 間隔類型參數,可找出兩個日期之間的天數:
DateDiff ("d", #10/7/1999#, #10/10/1999#)
傳回 3。
使用 DateDiff 配合 "yyyy" 間隔類型參數,可找出兩個日期之間相差的年數。以這種方式使用 DateDiff,相當於找出結束日期時間的年份與開始日期時間的年份之間的差。
DateDiff ("yyyy", #10/7/1999#, #2/10/2005#)
傳回 6。
DateDiff ("yyyy", #12/31/1999#, #1/1/2000#)
傳回 1 (相差一年),雖然兩個日期只差一天。
DateDiff ("yyyy", #1/1/1999#, #12/31/1999#)
傳回 0 (相差 0 年),雖然兩個日期相差 364 天。
假設在上述範例中,您在第一個日期申購一筆共同基金,然後在第二個日期賣出。共同基金公司每年必須依據您所擁有的基金單位寄送一份年度報告給您。因此,在上述案例中,您會分別收到 7、2 與 1 份年度報告。
使用 DateDiff 配合 "q" 參數,可找出兩個日期之間相差的季數 (以 3 個月的時間)。
DateDiff ("q", #10/6/1999#, #5/20/2003#)
傳回 14。
DateDiff ("q", #3/31/1999#, #4/1/1999#)
傳回 1。兩個日期是在相鄰的季中。
DateDiff ("q", #1/1/1999#, #3/31/1999#)
傳回 0。兩個日期是在相同的季中。
假設在 "yyyy" 的範例中,共同基金公司寄出了季報表。那麼在上述案例中,就必須分別寄出 15、2 與 1 份季報表。
使用 DateDiff 配合 "m" 參數可找出兩個日期之間相差的月數。
DateDiff ("m", #3/15/1999#, #7/13/1999#)
傳回 4。
使用 DateDiff 配合 "w" 參數可計算兩個日期之間的週數。例如,如果開始日期時間是星期二,DateDiff 會計算開始日期時間與結束日期時間之間有幾個星期二,不包括開始日期時間這第一個星期二。但是請注意,如果結束日期時間也是星期二,則會包括這個結束日期時間。
DateDiff ("w", #10/19/1999#, #10/25/1999#)
傳回 0。
DateDiff ("w", #10/19/1999#, #10/26/1999#)
傳回 1。
使用 DateDiff 配合 "ww" 參數可計算兩個日期之間有幾個每週的第一天。對於 DateDiff 函式,只有 "ww" 參數才會用到每週的第一天這個引數。至於其他間隔類型的參數則都會忽略這個參數。例如,如果每週的第一天是 crWednesday,就會計算開始日期時間與結束日期時間之間有幾個星期三。雖然開始日期時間是星期三,但它不會計算開始日期時間,但如果結束日期時間也是星期三,則會包括結束日期時間。例如,1999 年 10 月 6、13、20 與 27 日都是星期三。
DateDiff ("ww", #10/5/1999#, #10/29/1999#, crWednesday)
傳回 4。
DateDiff ("ww", #10/6/1999#, #10/29/1999#, crWednesday)
傳回 3。
DateDiff ("ww", #10/5/1999#, #10/27/1999#, crWednesday)
傳回 4。
例如,假設要計算訂貨日期與送貨日期之間的天數,但不計算星期六與星期日:
Local DateTimeVar d1 := {Orders.Order Date};
Local DateTimeVar d2 := {Orders.Ship Date};
DateDiff ("d", d1, d2) -
DateDiff ("ww", d1, d2, crSaturday) -
DateDiff ("ww", d1, d2, crSunday)



Business Objects, SAP 子公司
http://www.taiwan.businessobjects.com/
支援服務
http://www.taiwan.businessobjects.com/support/
產品說明文件網站
http://support.businessobjects.com/documentation/