日期为变量,sqlite按日期查询,字符怎么转化

CTime tm;
m_datebegin.GetTime(tm);
CString strDate=tm.Format("%Y-%m-%d");
得到控件中的日期了(其中一个),要查询时间段内的数据,sql语句应该怎么写呢?主要是(where date >=什么 and date<=什么,什么,什么)
好像是这样吧。。。高手们,帮看看,新手刚学,不会转换,谢谢!

作者: lingshawu   发布时间: 2011-06-14

使用字符串就可以了,把它放在单引号之间。

作者: zyq5945   发布时间: 2011-06-15

楼上正解,你用的是CString,说明你的数据库表字段类型也应该是字串

作者: karlson0211   发布时间: 2011-06-16

引用 1 楼 zyq5945 的回复:
使用字符串就可以了,把它放在单引号之间。

where date >=‘strDate’ ;
是这样吗?可是读取出来时,依然显示where date >=‘strDate’ ,时间没给反应啊

作者: lingshawu   发布时间: 2011-06-16

你的字符串可能不对,
CString strsearchsql;
strsearchsql="select * from 表名 where "+ 字段1+ " between '" + 字段2 + "'";

作者: karlson0211   发布时间: 2011-06-16

引用 4 楼 karlson0211 的回复:
你的字符串可能不对,
CString strsearchsql;
strsearchsql="select * from 表名 where "+ 字段1+ " between '" + 字段2 + "'";

字段一是哪一项啊?
我用的是C++,两个时间控件,想要选定时间段后,点击“查看”。sqlite中要先转换成sql语句,转换这一步,总是转不出想要的,暂时只会整型转换,但是这样就只能显示2011,后面的日期就丢了,不能按想要的查看。

作者: lingshawu   发布时间: 2011-06-16

下面代码你看看:
UpdateData(true);
CString strd1,strd2;

strd1.Format("%d-%d-%d",m_t1.GetYear(),m_t1.GetMonth(),m_t1.GetDay());
strd2.Format("%d-%d-%d",m_t2.GetYear(),m_t2.GetMonth(),m_t2.GetDay());
CString str="select * from 表名 where 字段名 between '"+strd1+"' and '"+strd2+"'";

其中,数据库表中日期格式是:2001-6-7的文本型,m_t1,m_t2是日期控件,

作者: karlson0211   发布时间: 2011-06-16

引用 6 楼 karlson0211 的回复:
下面代码你看看:
UpdateData(true);
CString strd1,strd2;

strd1.Format("%d-%d-%d",m_t1.GetYear(),m_t1.GetMonth(),m_t1.GetDay());
strd2.Format("%d-%d-%d",m_t2.GetYear(),m_t2.GetMonth(),m_t2.GetDay());
CSt……

error C2039: “GetYear”: 不是“CDateTimeCtrl”的成员
rror C2039: “GetMonth”: 不是“CDateTimeCtrl”的成员
error C2039: “GetDay”: 不是“CDateTimeCtrl”的成员
麻烦您再帮我看看

作者: lingshawu   发布时间: 2011-06-16

你用的是控件类型,我用的是简单值类型

作者: karlson0211   发布时间: 2011-06-16

如果用控件类型,你用GETTIM()获得时间然后将其转换成字符串就可以了
CTime Time;
 CString szDate1,szDate2;
 m_ctlt3.GetTime(Time);
 szDate1 = Time.Format("%Y-%m-%d");
 m_ctlt4.GetTime(Time);
 szDate2 = Time.Format("%Y-%m-%d");

作者: karlson0211   发布时间: 2011-06-16