早上好,
我通过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 ))`
谢谢大家!
答案 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))