【问题标题】:Converting Oracle date to Access Data format将 Oracle 日期转换为 Access 数据格式
【发布时间】:2012-02-07 01:00:36
【问题描述】:

早上好,

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

但是,以文本数据类型传入的数据列格式如下,例如:20120110

我使用下面的代码来转换访问中的日期:

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

这会将日期转换为:01/10/2012

这是实现这一目标的正确方法吗?

我得到混合结果,这意味着我的查询结果集不准确,我只是想确保我的转换方法是正确的。

例子:

`选择

CDate(Right([Example.MY_DATE],2) & "/" & Mid([Example.MY_DATE],5,2) & "/" & Left([Example.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#)

订购方式

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

谢谢大家!

【问题讨论】:

    标签: ms-access odbc


    【解决方案1】:

    您是否尝试过使用“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))
    

    【讨论】:

    • 不,我没有,您能否进一步详细说明我是如何将其绑定的。谢谢!我也在读这个。
    • 我的答案包含该函数的确切语法,我已尝试将其与您在上面编写的内容相匹配,但是如果您在 Access 的搜索框中键入函数名称,那么它会给出一个例子:)
    • 谢谢,我正在尝试对此进行测试,看看它与我已有的工作方式有何不同。
    • 如果有帮助,我已经用我的 SQL 版本更新了我的答案
    • 我收到错误,缺少运算符,参数数量错误。但是,我不想拖延这个,我得到了这个想法,并且将不得不玩这个。感谢你的帮助! :)
    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    相关资源
    最近更新 更多