在列中包含今天日期的 VBA 查询数据

Posted

技术标签:

【中文标题】在列中包含今天日期的 VBA 查询数据【英文标题】:VBA query data containing today's date in a column 【发布时间】:2021-07-14 09:17:39 【问题描述】:

我正在尝试在 VBA 中编写一个查询语句来从 DB2 中提取数据。 DAILY_REPORT 表中的一列是 DATE,其格式为“5/20/2020 7:55:01 AM”。我有兴趣在没有时间的情况下提取与今天日期相对应的数据。下面给了我我需要的结果,但日期必须是硬输入的。如何使查询动态化?考虑使用GETDATE()函数。

   Sub Report()


   Dim NSQL As String
   Dim conn As Object
   Dim rstRecordset As Object

   Const connPath As String = "DSN=;UID=;PWD=;DBALIAS="
   Set conn = CreateObject("ADODB.Connection")
   conn.Open connPath
   
   NSQL = ""
   NSQL = NSQL & "SELECT TECH,ID,MY_DATE FROM DAILY_REPORT WHERE cast(MY_DATE as date)= '2021-07-14'"
   
Set rstRecordset = CreateObject("ADODB.Recordset")
   rstRecordset.Open _
       Source:=NSQL, _
       ActiveConnection:=conn, _
       CursorType:=adOpenStatic, _
       LockType:=adLockReadOnly, _
       Options:=adCmdText
   
   With ActiveSheet.QueryTables.Add( _
           Connection:=rstRecordset, _
           Destination:=Range("A1"))
       .FieldNames = True
       .RowNumbers = False
       .FillAdjacentFormulas = False
       .PreserveFormatting = True
       .RefreshOnFileOpen = False
       .BackgroundQuery = True
       .RefreshStyle = xlInsertDeleteCells
       .SavePassword = True
       .SaveData = True
       .AdjustColumnWidth = True
       .RefreshPeriod = 0
       .PreserveColumnInfo = True
       .Refresh BackgroundQuery:=False
   End With


rstRecordset.Close
Set rstRecordset = Nothing
conn.Close
Set conn = Nothing

Sheets("Data").Visible = True

Call SaveAsCSV_Data

End Sub

感谢大家的帮助。

【问题讨论】:

你有没有尝试过? 你使用的是什么版本的 db2? 问题更像是你尝试过类似this的东西吗? 我使用的是 V11.1 编辑了帖子以显示我到目前为止所做的事情 【参考方案1】:

了解您正确地转换了未格式化的日期,您可以尝试当前日期:

WHERE cast(MY_DATE as date)= CURRENT DATE

如果你的演员不起作用,你可以使用函数TO_DATE() + DATE():

WHERE 
  DATE(TO_DATE(MY_DATE, 'MM/DD/YYYY HH:MI:SS AM')) = CURRENT DATE

【讨论】:

以上是关于在列中包含今天日期的 VBA 查询数据的主要内容,如果未能解决你的问题,请参考以下文章

MS ACCESS TransferSpreadsheet VBA 在导入数据中包含额外信息

将 mysql 表导出到 csv 中,其中数据在列中包含换行符

在 Access 查询中处理空日期值

如何在 Spark Scala SQL 查询中包含 0 值?

如何在 VBA 中调用字符串中的函数

某数据表中包含1个日期型字段、1个备注型字段和1个逻辑型字段,则该数据表的记录长度为多少?解释一下