2016-07-29 44 views
1

我需要在此表達式(在查詢的設計視圖內)的時間旁邊添加日期,以便使DateDiff函數的第二部分顯示爲:#07/29/2016 08:00:00 AM #MS Access:我如何在這個表達式中添加日期到時間?

我有什麼:DATEDIFF("n", now(), [end_time])

我需要什麼:DATEDIFF("n", now(), #7/29/2016# + [end_time])

我已經試過:

  1. DATEDIFF("n", now(), #7/29/2016# + [end_time])

  2. DATEDIFF("n", now(), #7/29/2016# & [end_time])

  3. DATEDIFF("n", now(), Date() + [end_time])

  4. DATEDIFF("n", now(), Date() & [end_time])

......但他們都返回相同的錯誤:This expression is typed incorrectly, or it is too complex to be evaluated. For example, a numeric expression may contain too many complicated elements. Try simplifying the expression by assigning parts of the expression to variables.

+2

你能解釋DATEDIFF在哪裏完成?它是在VBA中還是在表單的字段值或其他地方? –

+0

它在查詢中(設計視圖)。 – whatwhatwhat

+0

因此,如果我理解正確,您有一個存儲時間的列,並且您希望從現在開始獲取自現在開始的分鐘數(這意味着您僅從今天開始選擇行)。那是對的嗎 ? –

回答

2

我想通了。

DATEDIFF("n", now(), (DateValue(Date()) + TimeValue([end_time])))

+1

'Date()'只返回日期部分,所以應用'DateValue()'實際上是多餘的,但是'TimeValue()'調整就是我所建議的。感謝您發佈您的調查結果。 –

+0

是的,我同意這是多餘的,但這似乎解決了Access給出的錯誤。它看起來像Access只是如果這個工作,但'Date()'本身並沒有挑剔。好吧。 – whatwhatwhat

0

嘗試這種情況:

1)如果[END_TIME]是日期時間類型

DATEDIFF("n", now(), #7/29/2016#) + DATEDIFF("n", #7/29/2016#, [end_time]) 

2)如果[END_TIME]是數(以分鐘計)

DATEDIFF("n", now(), #7/29/2016#) + [end_time]