将Oracle日期转换为Access数据格式

时间:2012-01-10 15:59:38

标签: ms-access odbc

早上好,

我通过ODBC链接到Oracle Data(表)。我无法控制此表的设计方式或存储数据。

但是,数据列以下列格式作为文本数据类型输入,例如: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([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)&“/”& Left([Example.MY_DATE],4 ))`

谢谢大家!

1 个答案:

答案 0 :(得分: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))