首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

查询数据库连续日期判断解决办法

2012-01-01 
查询数据库连续日期判断我想做一个在access中查询是否从当日开始有连续日期但是好像不对。请高手指点。yyy

查询数据库连续日期判断
我想做一个在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 字段名最好用西文。

热点排行