Database-Design

比較日期的查詢

  • February 11, 2016

我正在嘗試創建一個查詢,根據學生的出生日期顯示學生是否成熟。但是,當執行查詢時,它會將所有學生返回為不成熟。任何在 1971 年 1 月 10 日之前出生的學生都應歸類為成熟學生。

下面顯示的是IIf()我用來表明學生是否成熟的陳述。

在此處輸入圖像描述

執行時該表返回以下結果

在此處輸入圖像描述

任何人都可以就為什麼會發生這種情況給出任何想法嗎?

下面顯示的是查詢的完整頁面

在此處輸入圖像描述

很可能是因為表達式1/10/1971被解釋為數字表達式,即1 divided by 10 divided by 19710(整數除法向下舍入值)。告訴 Access 這是一個日期,可以使用引號(不推薦)或使用日期函式來完成,如下所示:

IIf([DOB]<DateSerial(1971, 10, 1), "Mature", "Not mature")

上述DateSerial()VBA 函式將返回 1971 年 10 月 1 日。參數為(Year, Month, Day).

此外,以下內容將起作用(感謝@ypercube!)

IIf([DOB]<#1971-10-01#, "Mature", "Not mature")

引用自:https://dba.stackexchange.com/questions/129020