检索落在用户指定日期之间的访问记录

时间:2017-11-08 23:43:35

标签: sql vb.net ms-access

该表的日期字段为文本。 SQL语句是:

"SELECT datefield, anotherfield FROM tablename WHERE CDate(datefield) BETWEEN #" & dateStart & "# AND #" & dateEnd & "#"

dateStartdateEnd是字符串,例如“10/02/2017”和“10/4/2017”。我使用CDate将字符串datefield转换为日期,并将开头和结束日期字符串括起来,以便将它们视为日期。从字面上看,我已经尝试过WHERE子句的几十种不同的变种而没有运气。任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:0)

我当然同意不应将日期存储为文本。但是,如果您坚持使用表格设计,那么您将需要使用CDate来处理所有三个" date"字段:

SELECT CDate([datefield]) AS myDate, anotherfield
FROM Table2
WHERE (((CDate([datefield])) Between CDate([dateStart]) And CDate([dateEnd])));

答案 1 :(得分:-1)

我还使用了你在mySQL中存储和检索日期的方法。但是,我只使用了一个字段而不是您的观点dateStartdateEnd。我建议你只创建一个字段来存储日期。以下是我使用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