簡體   English   中英

使用ODBC連接時如何在MS Access或SQL Server中使用日期數據類型

[英]How to use date data type in either MS Access or SQL Server when using ODBC connection

我有一個C#程序,它使用DSN(ODBC驅動程序)連接到數據庫。

我在程序中運行的所有查詢都使用SQL。 一切都很好,但是在查詢中(在SELECT語句或WHERE子句中)使用日期時間數據類型時。

當DSN是MS ACCESS數據庫時,我必須使用如下所示的內容:

WHERE SomeDate = #1/1/2005#

但是,如果同一數據庫位於SQL Server中,則應使用如下所示的內容:

WHERE SomeDate = '1/1/2005' 

有沒有一種方法可以在同一程序中進行管理,而無需為SQL Server和MS ACCESS編寫例程?

我嘗試通過獲取OdbcConnection對象的屬性來進行嘗試,但是找不到找到驅動程序是MS Access還是SQL Server的方法。

您可能在SQL Server中使用了數據類型Datetime2 如果使用本機SQL Server ODBC驅動程序,則將其作為文本讀取。

所以:

  1. 將Microsoft®ODBC驅動程序11用於SQLServer®-或更高版本,當前為17:

用於SQLServer®的Microsoft®ODBC驅動程序17

  1. 將字段的數據類型更改為DateTime

您可以將Access數據庫設置為ANSI-92模式。 這將允許您查詢帶單引號的日期字段。

盡管這是一個現有數據庫,或者有其他應用程序在使用它,但請注意。 這可能會對數據庫中不符合ANSI標准的任何現有查詢帶來重大更改。 同樣,如果還有其他使用此數據庫的應用程序,其查詢也可能會中斷。

另外,請注意, OdbcConnection確實具有一個Driver屬性,您可以對其進行探測以確定數據源。 在我的計算機上,指向SQL Server數據庫的DSN返回sqlncli11.dll ,因為我使用的是SQL Server Native Client 11.0。 您可以使用此屬性來驅動應用程序中查詢的語法。 您可以創建一個數據訪問層,將其中的某些部分與其余的代碼抽象化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM