2012-01-10 35 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

相关问题