我有一个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) = ?
,但没有运气。不知道为什么我会这样,看起来应该这么简单。
答案 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) = ?
由于