Oracle 数据库中的 VBA ADODB DATE 字段类型
Posted
技术标签:
【中文标题】Oracle 数据库中的 VBA ADODB DATE 字段类型【英文标题】:VBA ADODB DATE field type from Oracle database 【发布时间】:2015-02-17 13:01:53 【问题描述】:我有一个将 Excel 连接到 Oracle DB 并运行 SQL 查询的 VBA/ADODB 代码。问题是 Excel 中的记录集将 Oracle DATE 字段显示为 adDBTimeStamp (135),即使在 Oracle 中它们存储为简单日期。基本上我只想将 DD.MM.YYYY 部分导入 Excel。是否可以在将记录集中的 ADODB 字段类型导入 Excel 之前更改它?我知道我可以在导入后使用 VBA 更改格式,但我不想这样做。
代码如下:
query = "SELECT NAME,DATE1,DATE2,DATE3 from MY_TABLE"
rs.Open query, Con
Sheets("data_source").Range("A2").CopyFromRecordset rs
Con.Close
【问题讨论】:
我认为将 Excel 列的格式更改为简单的日期可能会更容易,不是吗? 但是你不能在 COUNTIFS 公式中使用它(这是我需要的),除非你用 VBA 改变格式 是的,用 VBA 宏更改它。迭代列并以所需格式构建日期的快速子将是一个好的开始。 【参考方案1】:请注意,Oracle DATE 类型将日期和时间存储到秒。如果您只想获取数据的日期部分,只需在查询中使用 trunc 函数:
query = "SELECT NAME,trunc(DATE1),trunc(DATE2),trunc(DATE3) from MY_TABLE"
【讨论】:
以上是关于Oracle 数据库中的 VBA ADODB DATE 字段类型的主要内容,如果未能解决你的问题,请参考以下文章