2009-06-17 20 views
4

我有給我一個訪問數據庫,其中所有的日期被存儲在文本 字段在格式mm/dd時(例如:3/13/2009 12:20:36 AM)MS-訪問錯誤的日期格式從文本轉換字段到日期/時間

我想將字段轉換爲日期/時間,但訪問格式爲dd/mm,其中 使其成爲日期如果日期大於12日或未轉換日期可能 是錯的。

實施例與當前的格式時作爲文本在DB存儲:

 
3/12/2009 11:32:40 PM 
3/13/2009 11:32:40 PM 

如果我簡單地從表的設計視圖 從文本到日期/時間日期類型轉換該字段的數據類型我得到如下:

 
03/12/2009 11:32:40 PM 
13/03/2009 11:32:40 PM 

我怎麼會去固定的存儲值? 我不那麼在意格式中的日期將被顯示爲我能 輕易改變它的外觀,但讓他們從文本正確地轉換到 日期/時間已被證明是非常棘手。

優選我想從直接訪問修復它,但如果需要,我可以從C#這樣做。

謝謝。

+0

返回日期怎麼是你想現在把它轉換? – kscott 2009-06-17 16:33:14

回答

2

如果這是本地Access應用程序,它使用您系統的日期時間格式,因此在Windows中更改您的本地化設置以使用MM/DD將使Access以這種方式進行轉換,除非在應用程序中某處已被覆蓋。

+0

這麼簡單...但它的工作原理!謝謝kscott。 – 2009-06-17 16:53:21

+1

希望這是OP正在做的一次性操作。其他方面,你只是保證某些用戶將要改變他/她的日期設置,並打破應用程序。 – BIBD 2009-06-17 18:20:21

+0

此問題的通常方法是:使用非明確的日期格式,如日 - 月 - 年(例如,17君2009)或使用DateSerial。請記住,Jet SQL以美國形式解釋非指定日期,即mm/dd/yyyy。當然,如果您的本地日期設置是dd/mm/yyyy,這當然是災難性的。 – 2009-06-18 03:50:03

0

在Access中導入功能都有不俗的日期解析功能,並會讓你指定好幾個不同的格式。不知道如何最好地將其應用於Access中已有的內容 - 快速的方法可能是將數據複製到Excel中,然後重新導入它。

2

格式(CDATE( 「2009年3月13日下午11時32分40秒」), 「MM/DD/YYYY」 會給你03/13/2009

2

你就得到了很好的答案你因此您應該瞭解以下幾點:

SQL語句要求日期要麼完全明確,要麼以mm/dd/yy爲單位,要麼以mm/dd/yyyy格式,否則訪問/噴氣會做的最好詮釋與依賴於它正在與具體日期未知結果的日期。你不能假設你正在上使用這些日期格式的系統。因此,你應該使用在以下網頁的邏輯。

在美國#MM/DD/YYYY#格式 http://www.mvps.org/access/datetime/date0005.htm

相關問題