查询数据库连续日期判断
我想做一个在access中查询是否从当日开始有连续日期 但是好像不对。请高手指点。
yyy = Year(Date)
mmm = Month(Date)
ddd = Day(Date)
ymd1 = yyy & "年" & mmm & "月" & ddd & "日"
ymd2 = yyy & "年" & mmm & "月" & ddd - 1 & "日"
ymd3 = yyy & "年" & mmm & "月" & ddd - 2 & "日"
strConnAcc = "select * from 黄色高温预警 where 年月日= '" & ymd1 & "'and 站点='" & righ(ii) & " '"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If RsAcc.RecordCount > 0 Then '连续一天,如果记录存在
ss = "第一天出现"
End If
RsAcc.Close
strConnAcc = "select * from 黄色高温预警 where 年月日= '" & ymd2 & "'and 年月日= '" & ymd1 & "'and 站点='" & righ(ii) & " '"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If RsAcc.RecordCount > 0 Then '连续二天,如果记录存在
ss = "第二天出现"
End If
RsAcc.Close
strConnAcc = "select * from 黄色高温预警 where 年月日= '" & ymd3 & "'and 年月日= '" & ymd2 & "'and 年月日= '" & ymd1 & "'and 站点='" & righ(ii) & " '"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If RsAcc.RecordCount > 0 Then '连续三天,如果记录存在
ss = "第三天出现"
End If
RsAcc.Close
[解决办法]
strConnAcc = "select * from 黄色高温预警 where 年月日>='" & Format(Date-2, "yyyy年mm月dd日")"' and 年月日<='" & Format(Date, "yyyy年mm月dd日") & "' and 站点='" & righ(ii) & "' Order By 年月日 DESC"
RsAcc.Open strConnAcc, ConnAcc, 1, 1
If (RsAcc.RecordCount > 0) And (RsAcc!年月日 = Format(Date, "yyy年mmm月ddd日")) Then
ss = Mid("一二三", RsAcc.RecordCount, 1)
ss = "第" & ss & "天出现"
End If
RsAcc.Close
建议:
1 日期字段用 DateTime 型,而不是 Text 型。查询更快,也易于处理。
strConnAcc = "select * from 黄色高温预警 where 年月日>=#" & Format(Date-2, "yyyy-mm-dd")"# and 年月日<=#" & Format(Date, "yyyy-mm-dd") & "# and 站点='" & righ(ii) & "' Order By 年月日 DESC"
2 字段名最好用西文。