1

我在使用这个查询时遇到了一些问题,它可以在我的本地主机(IIS 6)上运行,但是当我将相同的代码上传到 Web 服务器(IIS/7.5)时,它不会从数据库中返回任何数据。

这是查询:

Set RsTdL = Con.Execute("Select * From COURSE1 Where DUE_DATE Like '"&Date&"%' and CLASS = '"&CCode&"' ORDER BY SUBJECT, LECT_NO, SUBTOPIC")

'" & Date & "%'匹配数据库中的系统日期,因此它将显示当前日期记录。

DUE_DATE列中,日期是这种格式,9/3/2013 3:42:03 PM 我不知道如何调试这个查询,因为它在我的本地机器上工作,WEB SERVER 没有返回任何错误,所以我卡住了......

请帮忙,

谢谢

4

3 回答 3

5

DUE_DATE是日期/时间类型,您想匹配今天日期的所有值,忽略一天中的时间。所以要求DUE_DATE大于或等于今天的最早时间(midnite)并且小于明天的日期。

"SELECT * From COURSE1" & vbCrLf & _
"WHERE DUE_DATE >= Date() AND DUE_DATE < DateAdd('d', 1, Date())" & vbCrLf & _
"AND [CLASS] = '" & CCode & "' ORDER BY SUBJECT, LECT_NO, SUBTOPIC"

AlsoCLASS是一个保留字,所以将该名称括在方括号中。

于 2013-09-03T06:00:56.873 回答
1

数据库可能正在使用服务器上设置的日期格式。

这可能与您的语言环境机器不同。对每个环境中的日期字段进行简单的选择以查看它们的外观。

于 2013-09-03T04:18:33.763 回答
0

对于安全的日期比较,请使用 datediff 函数并使用 d(计算天数)作为参数。选择 datediff 为零的行以检索同一日期的所有课程。即使日期戳包含时间,这也将起作用。

于 2013-09-03T05:40:27.877 回答