使用VB.net从SQL获取最大结果

时间:2014-12-12 22:52:02

标签: sql-server vb.net

我有以下代码:

query = "SELECT ResultDate, Result FROM ASPECTRESULTS WHERE EUPN = '" & StudentEUPN & "' AND SubjectCode = '" & SearchClass & "' AND ACCYEAR = '" & AccademicYear & "' ORDER BY RESULTDATE"

我想根据结果的日期获得最新结果。 我尝试使用 SELECT MAX(ResultDate),但没有运气。

任何帮助表示感谢。

此致 格雷厄姆

1 个答案:

答案 0 :(得分:0)

您可以编写(假设ResultDate是表中的日期类型列)

query = "SELECT TOP 1 ResultDate FROM ASPECTRESULTS WHERE ..... " & _
        "ORDER BY RESULTDATE DESC"

这将返回ResultDate列中的最高日期

说,你应该真正研究parameterized query如何工作以及为什么你应该ALWAYS use parameters而不是字符串连接

修改
从上面的评论(ResultDate是Char(10)),然后正确排序此字段是非常痛苦的,特别是如果您将日期存储为dd/MM/yyyy。在char排序中使用此格式,值'11/01/2013'遵循值'01/01/2014'。这是始终在datetime字段中存储日期时间值的众多原因之一。数据库将知道如何正确处理日期,而不考虑如何用字符串表示。

你有两个选择可以克服这个障碍。

  • 将ResultDate字段的数据类型更改为DateTime字段(推荐)
  • 使用“可排序”'存储您的值。 char格式(yyyy / MM / dd with 总是两位数的月份和日期(不推荐)