怎样找出正在播放的电视节目的所有记录?
我解析了CCTV这个网页下载的电视节目表,已经导入到ACCESS中了。
怎样用SQL找出正在播放的电视节目的所有记录?
表Program有如下字段
ProgramID 自动编号
ProgramName 节目名称
PlayTime 播放时间
我用如下SQL,不够准确。不知有什么更好的SQL呢?
select *
from Program
where day(PlayTime) = day(now())
and hour(PlayTime) = hour(now())
and minute(PlayTime) > = minute(now())
and month(PlayTime) = month(now())
and year(PlayTime) = year(now())
------解决方案--------------------我觉得你应该改一下数据库的结构。
因为一个program的播出是在一个时段内的。在program表中只有开始时间没有结束时间,
只通过判断播出时间是不行的。而要在数据库里寻找下一个节目的播出时间然后再对比当前的时间要通过嵌套查询。在access里写起来可能不太好写(用access比较少)。建议你在program里增加一个结束时间的字段。这样判断起来就方便多了。
------解决方案----------------------年月日时相同,但分钟不同,大于等于当前时间的分钟,使用如下SQL:
select *
from Program
where format(PlayTime, "yyyy-mm-dd HH ")=format(now(), "yyyy-mm-dd HH ")
and format(PlayTime, "yyyy-mm-dd HH:MM ")> =format(now(), "yyyy-mm-dd HH:MM ")