【问题标题】:VBA ADODB DATE field type from Oracle databaseOracle 数据库中的 VBA ADODB DATE 字段类型
【发布时间】: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 宏更改它。迭代列并以所需格式构建日期的快速子将是一个好的开始。

标签: sql oracle vba adodb


【解决方案1】:

请注意,Oracle DATE 类型将日期和时间存储到秒。如果您只想获取数据的日期部分,只需在查询中使用 trunc 函数:

query = "SELECT NAME,trunc(DATE1),trunc(DATE2),trunc(DATE3) from MY_TABLE"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    相关资源
    最近更新 更多