Преобразование даты Oracle в формат доступа к данным - PullRequest
0 голосов
/ 10 января 2012

Доброе утро,

I ссылка на Oracle Data (таблицу) через ODBC.У меня нет никакого контроля над дизайном этой таблицы или сохранением данных.

Однако столбец данных становится текстовым типом данных в следующем формате, например: 20120110

Я использовал следующий код для преобразования даты в доступе:

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

Это преобразует дату в: 01/10 / 2012

Это правильный способу меня получилось?

Я получаю результаты микширования, то есть мой набор результатов по моему запросу не точный, я просто хочу убедиться, что мой метод конвертации правильный.

Пример:

`SELECT

CDate (справа ([Example.MY_DATE], 2) &" / "& Mid ([Example.MY_DATE], 5,2) &" / "& Left ([Пример.MY_DATE], 4)) AS Format_Date

WHERE (((CDate (Right ([xample.MY_DATE], 2) & "/" & Mid ([xample.MY_DATE], 5,2) & "/"& Left ([xample.MY_DATE], 4)))> # 01/09/2012 #)

ORDER BY

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

Спасибо всем!

1 Ответ

0 голосов
/ 10 января 2012

Вы пытались использовать вместо этого функцию '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))
...