gpt4 book ai didi

Excel 2010 中 VBA 中的 SQL 字符串与日期

转载 作者:行者123 更新时间:2023-12-04 21:40:43 27 4
gpt4 key购买 nike

我环顾四周,但找不到此 SQL 语句的问题:

    strSQL = "SELECT Directory.DisplayName, Department.DisplayName, Call.CallDate, Call.Extension, Call.Duration, Call.CallType, Call.SubType FROM (((Department INNER JOIN Directory ON Department.DepartmentID = Directory.DepartmentID) INNER JOIN Extension ON (Department.DepartmentID = Extension.DepartmentID) AND (Directory.ExtensionID = Extension.ExtensionID)) INNER JOIN Site ON Extension.SiteCode = Site.SiteCode) INNER JOIN Call ON Directory.DirectoryID = Call.DirectoryID WHERE (Call.CallDate)>=27/11/2012"

无论我更改 WHERE 什么,它总是返回数据库中的每一个值(至少我假设它确实如此,因为当我尝试这样做时,excel 完全挂起)这个 SQL 语句在 Access 中工作得非常好(如果日期周围有 ##)。知道如何解决这个问题,目前正在尝试创建一个允许用户在不同日期输入的 SQL 语句,但必须首先克服这个随机障碍。

编辑 : SQL 数据库中的日期字段是 DD/MM/YY HH:MM:SS 格式,这个查询是在 VBA - EXCEL 2010 中完成的。
此外,为了避免混淆,已从语句中删除了 TOP 10,即阻止 excel 检索数据库中的每一行。
我激活的当前引用是:MicrosoftX Data Objects 2.8 Library
数据库是一个 MSSQL,使用连接字符串:
提供者=SQLOLEDB;服务器=#######;数据库=#######;用户ID=########;密码=########;

最佳答案

WHERE (Call.CallDate) >= #27/11/2012#

# 将日期变量括起来.

编辑 : 请明确日期字符串,例如 27-Nov-2012
strSQL = "SELECT ........ WHERE myDate >= #" & Format(dateVar, "dd-mmm-yyyy") & "# "

如果您使用 ado,您应该查看 Paramaters而不是使用动态查询。

编辑2 :感谢@ElectricLlama 指出它是 SQL Server,而不是 MS-Access
strSQL = "SELECT ........ WHERE myDate >= '" & Format(dateVar, "mm/dd/yyyy") & "' "

关于Excel 2010 中 VBA 中的 SQL 字符串与日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578633/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com