Excel:使用单元格中的日期参数查询SQL表

时间:2015-04-07 15:25:45

标签: excel excel-vba excel-formula vba

我有一个ODBC连接,它只是查询SQL表:

 SELECT * FROM [TABLE] WHERE myDate = ?

如果我在MS Query中运行查询,它会提示输入日期,我只需输入4/2/2015即可完美地返回4/2/2015数据

我将参数设置为从单元格(B1)读取:

=WorkSheetName!$B$1

当我切换回Excel并将4/2/2015放入B1然后刷新 - 它会在转换字符串错误的日期和/或时间时转换失败。

我尝试将查询编辑为WHERE CONVERT(Varchar(10),myDate,101) = ?,但没有运气。不知道为什么我会这样,看起来应该这么简单。

3 个答案:

答案 0 :(得分:1)

我很欣赏我得到的反馈 - 但事实证明,我忽视了一些非常简单的事情。我保留日期的实际单元格被格式化为日期,并给出了转换错误。将格式化为文本单元后,它会在给定日期正确返回数据。感谢

答案 1 :(得分:0)

尝试使用#作为过滤器时,必须使用Date填充过滤器部分。

应该是

SELECT * FROM [TABLE] WHERE myDate = #4/2/2015# 

答案 2 :(得分:0)

将“myDate”列转换为“Smalldatetime”格式应该适合您。

试试这个:

SELECT * FROM [TABLE] WHERE Cast(myDate as smalldatetime) = ?

由于