2

背景:オラクル データベースに格納されたデータを受け取る調査で忙しい。私自身、Accessデータベースを使用して、Oracleデータベースからのデータを保存しています(この質問には関係のない他のソースからのデータも同様です)

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
4

1 に答える 1

0

したがって、変換関数に基づいて、受信しているOracleテキスト形式がYYYYMMDDであるように見えます。この場合、結合に型変換を使用するため、逆の方法でアクセス値をテキストに変換することをお勧めします。

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 よりも使用することを好みます

于 2013-06-13T14:31:40.010 に答える