2014-07-10 144 views
0

在下面的表達式中,我試圖計算創建日期和今天日期之間的天數差異。如果是則少於30天輸出「1」,否則輸出「0」使用DateDiff計算天差

=IIF(DateDiff("d",(Format(CDate(Fields!Created.Value), "MM/dd/yyyy")), (Format(CDate(Today()), "MM/dd/yyyy")))<30, "1", "0") 

在「創建」這兩個值和今天()被格式化的日期和時間,所以我使用的格式和CDate將提取只是日期。當我運行報告時,它顯示所有「0」,我知道這是不正確的。表情有什麼問題嗎?

+0

表達看起來不錯。更改30到3000,看看你是否仍然得到0或現在顯示1秒? –

回答

1

是的,這個表達式有很多錯誤:您將日期,顯式轉換爲日期,然後使用格式將它們轉換爲字符串,然後隱式地將它們轉換回日期以進行日期比較。這是很多繁重的事情,沒有任何好處。您還在VBA表達式中使用SQL語法。當它可能應該是一個整數時,你的結果也是一個字符串。

你的表達應該看起來更像是這樣的:

=IIF(DateDiff(DateInterval.Day, Fields!Created.Value, Today) < 30, 1, 0)