2012-01-10 98 views
0

早上好,將Oracle日期轉換爲Access數據格式

我通過ODBC鏈接到Oracle數據(表)。我無法控制此表的設計或數據存儲方式。

然而,在未來中作爲文本數據類型以下列格式,例如,數據列:20120110

我用下面的代碼將日期轉換在訪問:

CDate(Right([Example.MY_DATE],2) & "/" & Mid([Example.MY_DATE],5,2) & "/" & Left([Example.MY_DATE],4))

這將日期轉換爲:2012年1月10日

這是正確的方法來實現這一目標嗎?

我得到混合結果,這意味着我的查詢結果集不準確,我只是想確保我的轉換方法是正確的。

實施例:

`SELECT

CDATE(右([Example.MY_DATE],2)& 「/」 & MID([Example.MY_DATE],5,2)& 「/」 &左([Example.MY_DATE],4))AS Format_Date

WHERE(((CDATE(右([xample.MY_DATE],2)& 「/」 & MID([xample.MY_DATE],5,2) &「/」& Left([xample.MY_DATE],4)))>#01/09/2012#)

ORDER BY

CDATE(右([Example.MY_DATE],2)& 「/」 & MID([Example.MY_DATE],5,2)& 「/」 &左([Example.MY_DATE ],4))`

謝謝大家!

回答

0

您是否嘗試過使用「DateSerial」功能來代替:

Date = DateSerial(Left(MyDate, 4), Mid(MyDate, 5, 2), Right(MyDate, 2)) 

日期序列應該將日期轉換,例如在英文格式,而不是美國等格式

爲您的環境的默認格式

所以SQL可能看起來像這樣:

SELECT DateSerial(Left(MyDate, 4), Mid(MyDate, 5, 2), Right(MyDate, 2)) AS Format_Date 
FROM Tablename 
WHERE DateSerial(Left(MyDate, 4), Mid(MyDate, 5, 2), Right(MyDate, 2)) > #01/09/2012# 
ORDER BY DateSerial(Left(MyDate, 4), Mid(MyDate, 5, 2), Right(MyDate, 2)) 
+0

不,我沒有,你可以進一步說明,我怎麼在 感謝這追平!我也在閱讀。 – Asynchronous 2012-01-10 16:31:02

+0

我的答案包含該函數的確切語法,並且我試圖將它與上面所寫的內容進行匹配,但是如果您在Access中的搜索框中鍵入函數名稱,則會給出一個示例:) – 2012-01-10 16:36:18

+0

謝謝我我試圖對此進行測試,看看它與我已有的工作方式有何不同。 – Asynchronous 2012-01-10 16:37:21

相關問題