2013-06-12 63 views
2

背景:林忙於研究,這是我收到存儲在Oracle數據庫數據。我自己使用Access數據庫來存儲來自oracle數據庫的數據(以及來自其他來源的數據,與此問題無關)訪問2003 - VBA - 入世對兩種類型(字符串=日期)

來自oracle數據庫的數據以訪問格式發給我。然後,我運行以下查詢來檢索「oracle數據」,並將插入(或更新,如果行已經被刪除)到我自己的訪問數據庫中。

oracle數據庫導出以文本格式保存日期,我在自己的數據庫中有日期格式,所以我使用VBA函數來轉換日期中的文本。


我的問題:我可以在一個字符串和日期參加如果字符串轉化爲一個日期嗎?我應該如何繼續?

UPDATE [TABLE1] INNER JOIN [URI_to_oracle_export.mdb].[TABLE2] 
ON ([TABLE1].PT=[TABLE2].PT) 
AND ([TABLE1].DCMDATE=toDateFunction([TABLE2].DCMDATE)) 
AND ([TABLE1].CPEVENT=[TABLE2].CPEVENT) SET ...the rest of the SQL.. 

我toDateFunction:

Function toDateFunction(input As String) 

toDateFunction= CDate(Right(input , 2) & "/" & Mid(input , 5, 2) & "/" & Left(input , 4)) 

End Function 

回答

0

所以根據您的轉換功能,它看起來好像您收到的Oracle文本格式是年月日,使用類型轉換在這種情況下,加入我寧願反過來工作,並將我的訪問值轉換爲文本,例如:

WHERE OracleTable.Date = Format(AccessTable.Date, "YYYYMMDD") 

INNER JOIN OracleTable ON OracleTable.Date = Format(AccessTable.Date, "YYYYMMDD") 

你仍然可以做反向和您的Oracle價值轉換爲日期,如果你想這將是更喜歡:

WHERE DateSerial(Left(OT.Date,4),Mid(OT.Date,5,2),Right(OT.Date,2)) = AT.Date 

在構建您的日期值從字面上我更喜歡使用DateSerial到CDATE

相關問題