日期:2014-05-17  浏览次数:20326 次

利用数据库绘制历史信息图表遇到问题
本人用VC写了一个上位机程序,其中有一块利用数据库的数据绘图,可是对于数据库完全是菜鸟,都是网络上的代码生搬过来的,现在遇到一个问题,我是用VC的日期控件,选择年月日,作为查找某天的时刻的数据条件之一,先上代码
         CTime ChartTime; CString TimeString;
ChartTime = this->m_pShiduDate.GetTime();//获取选择的年月日
//TimeString = ChartTime.Format(_T("%Y-%m-%d"));
CAdoConnection m_db;//连接数据库
m_db.OnInitADOConn();
UpdateData(true);//更新数据 
CString sql = "select * from shidu ";//定义数据库语句
这个select语句下不去了,本来想select..where这样写的,可是试了好几次都失败,str=tm.Format("%y-%m-%d %H:%M");这是我采集数据时插入数据库的时间格式,现在我的到TimeString这个要查询的年月日,还有第二个条件是小时时要整点的,即一天24小时,请问我这个select语句要怎么写呢,才能找出特定天的24小时数据呢,请大家赐教。

------解决方案--------------------
select * from shidu where convert(varchar(10),时间字段名,120) = '2013-04-30'

这里的2013-04-30是你控件输入的时间参数值,可以去看看convert函数,当然你也可以用year,month等时间函数去拼接where条件的字符串。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

select * from shidu where convert(varchar(10),时间字段名,120) = '2013-04-30'

这里的2013-04-30是你控件输入的时间参数值,可以去看看convert函数,当然你也可以用year,month等时间函数去拼接where条件的字符串。

按你说的的确可以,但是这个2013-04-30这个一换成变量就不行了,也就是上面的TimeString ,它是字符串的,请问这里有什么格式可以注意的吗?还有那个怎么判断整点呢?

如果是拼接SQL,關於日期或時間的變量要注意一下.你要確定你的日期變量先換成string類型而且格式是yyyy-mm-dd.

请大家帮忙看看啊convert()这个函数整出来的varchar类型是不是不能跟CString类型匹配啊,我一些进去运行就提示错误,我从日期控件ChartTime = this->m_pShiduDate.GetTime();得到选择的时间后,接下来我要怎么处理这个变量呢,我把它转化成CString类型TimeString = ChartTime.Format(_T("%Y-%m-%d"));
可是会出错呀,这两者是不是不能匹配啊,要怎么比啊,就差这一步了啊

你的代碼是怎麼寫的,我沒用過VB,我猜是標點符號和拼接SQL出了問題,我舉個例子,大概代碼如下,你要注意標點符號
TimeString = ChartTime.Format("%Y-%m-%d");
CString sql = "select * from shidu where 时间字段名= '"+TimeString +"'"