该表的日期字段为文本。 SQL语句是:
"SELECT datefield, anotherfield FROM tablename WHERE CDate(datefield) BETWEEN #" & dateStart & "# AND #" & dateEnd & "#"
dateStart
和dateEnd
是字符串,例如“10/02/2017”和“10/4/2017”。我使用CDate
将字符串datefield
转换为日期,并将开头和结束日期字符串括起来,以便将它们视为日期。从字面上看,我已经尝试过WHERE子句的几十种不同的变种而没有运气。任何建议都表示赞赏。
答案 0 :(得分:0)
我当然同意不应将日期存储为文本。但是,如果您坚持使用表格设计,那么您将需要使用CDate来处理所有三个" date"字段:
SELECT CDate([datefield]) AS myDate, anotherfield
FROM Table2
WHERE (((CDate([datefield])) Between CDate([dateStart]) And CDate([dateEnd])));
答案 1 :(得分:-1)
我还使用了你在mySQL中存储和检索日期的方法。但是,我只使用了一个字段而不是您的观点dateStart
和dateEnd
。我建议你只创建一个字段来存储日期。以下是我使用VB.NET设法捕获这些日期之间的值的方法。
SELECT datefield, anotherfield FROM tablename WHERE datestoredfield BETWEEN '" & selectedDateFrom.toString("MM/dd/yyyy") & "' AND '" & selectedDateTo.toString("MM/dd/yyyy") & "';
我在所选日期的末尾指出了.toString("MM/dd/yyyy")
,因为您在日期字段中的当前存储日期格式为MM/dd/yyyy
。