编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
 
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
 12 12
发新话题
打印

[结贴了]关于查询时间不正确的问题

string ls_data,ls_dtstart,ls_dtend
ls_dtstart=string(lth_date1,'yyyy-mm-dd')
ls_dtend=string(lth_date2,'yyyy-mm-dd')

Select dj_dqlc Into :ls_data
From clgl_dj where string(data,format) between :ls_dtstart and :ls_dtend; //转换成字符查找
//djrp为日期型字段
//确定字段及表名已存在
ST_1.TEXT=ls_data
另外借助messagebox来查验判断错误
你的第二个问题估计是数据不一致导致的

  

才明白但已经晚了,希望结识想创业的朋友。

TOP

谢谢楼上的黎明前的黑暗、千金散尽、FYH了。今天突然就想通了。一开始对你们给的提示没在意,又看了看,才发现你们说的都很有道理。
因为ACCESS数据库里是"日期/时间"型,如“2006/06/11 11:20:37”的格式,但显示时,我设置了格式,只显示出2006/06/11.
设置的查询变量又是DATE型(非DATETIME型),就造成输入的内容比如“2006/06/11”,以此为条件检索时就变成了“2006/06/11 00:00:00”,总是小于当天的数据输入后保存的时间(除非你在2006/06/11 00:00:00这个时间保存了N笔数据),找到这个原因后,处理就简单了,要么象楼上的处理的那样,全部转换(这样好象麻烦些),要么就把后面的日期自动加1,就变成了2006/06/12 00:00:00,这样就能达到目的了。

语句如下:
date ls_start,ls_end

dw_1.RETRIEVE(date(em_1.text),RelativeDate(date(em_2.text),1))

相关SELECT语句为 SELECT * FROM 表名 where djrq>=:ls_start and djrq<=:ls_end


如果写成过滤条件的话,如下:

dw_1.setfilter("djrq>=date('"+em_1.text+"') and djrq<=RelativeDate(date('"+em_2.text+"'),1)")
dw_1.filter()
dw_1.setfilter("")

不知我说的有没有不当之处,别见笑。之所以把这个贴子写得这么详细,是因为在网上搜索时发现许多相关的问题,有的有正确答案,但大部分没有。

就此结贴了。

[此贴子已经被作者于2007-6-14 12:32:44编辑过]

TOP

 12 12
发新话题