2017-06-13 37 views
0

我有一個鏈接表的Access 2016數據庫。他們鏈接到一個Azure SQL數據庫。當我在Access查詢中包含表格時,空日期顯示爲1/1/1800。如果我只是在Access中打開表格,則空日期爲空。下面是該查詢:Microsoft Access 2016查詢返回鏈接表中的空日期的1/1/1800

SELECT dbo_WTSI_Jobs.Id, dbo_WTSI_Jobs.JobNo, dbo_WTSI_Jobs.CreatedDate, dbo_WTSI_Jobs.CompletedDate 
FROM dbo_WTSI_Jobs 
WHERE (((dbo_WTSI_Jobs.CreatedDate)>#1/1/2017#)); 

此查詢返回dbo_WTSI_Jobs.CompletedDate爲1800年1月1日,當它爲空。如果我省略WHERE子句,則空dbo_WTSI_Jobs.CompletedDate值爲空字符串。

如何防止查詢返回1/1/1800?

+1

聽起來他們實際上並不是'NULL'值,它們是空字符串。當試圖將空字符串轉換爲日期時,您將獲得儘可能最短的日期。你可以嘗試像'SWITCH(dbo_WTSI_Jobs.CompletedDate =「」,NULL)''。類似的東西會爲該列返回一個實際的NULL值。 – BJones

+0

你說得對,他們不是零。此表達式返回false:Expr1:IsNull([dbo_WTSI_Jobs]。[CompletedDate])。我不熟悉SWITCH功能,但是下面的問題解決了我的問題:CompletedDateCalc:IIf([CompletedDate] =#1/1/1800#,「」,[CompletedDate])。順便說一句,數據類型是日期時間。感謝你的幫助。 –

回答

1

將字段的數據類型更改爲datetime。

+0

問題依然存在嗎?它仍然會將空字符串轉換爲「1/1/1800」,這次只存儲在數據庫中。 – BJones

+0

如果數據類型爲_DateTime_,則不能將日期1800-01-01作爲默認或「空」日期接收;在Access中,即1899-12-30。 – Gustav

0

以下解決了我的問題:CompletedDateCalc:IIf([CompletedDate] =#1/1/1800#,「」,[CompletedDate])。

相關問題