在列中包含今天日期的 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 中,其中数据在列中包含换行符