[英]ASP - Struggling with date format (in WHERE clause) when fetching records from MS Access DB
在将现有(以前工作的)网站从Windows Server 2003迁移到Server 2008的过程中,从IIS6迁移到IIS7的过程中,我遇到了这种奇怪的情况:
OpenSQL("SELECT * FROM bookings WHERE apartment_id = '" & strApartment & "' AND BookDate = #" & SwitchDate(dDate) & "#")
运行时,上述SQL脚本仅在日期中没有前导零的情况下返回行。 例如,如果日期为10/01/2010,它将返回行。 但是,如果日期为2010年1月1日,它将不会返回行。 相反,我得到这个错误:
BOF或EOF为True,或者当前记录已被删除。 请求的操作需要当前记录。
我对ASP不太熟悉(我相信在这种情况下运行VB,尽管它是经典的ASP-我不确定您如何说?)。 但这是一个非常简单的请求,我无法理解发生了什么。 我试过删除switchdate函数(删除所有前导零),并使用语法,但无济于事。
Access DB以01/01/2001格式保存记录。
尽管ACE和Jet数据库引擎确实将不明确的#xx/yy/zzzz#
日期文字视为mm/dd/yyyy
但它们也接受明确格式yyyy-mm-dd
和yyyy/mm/dd
因此您最好的解决方案是将更新您的SwitchDate()
函数以返回这些格式之一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.