select BreakTime记录 from tb where 时间 between m_DataBegin and m_DataTimeEnd--orselect BreakTime记录 from tb where 时间 > m_DataBegin and 时间 <m_DataTimeEnd
我一直是这么写的,但是一直有问题,你确定sql语句对吗
between and 是>= <=,是包括=的,你要考虑好你的“介于”是否包含等于,如果不是,那么就要用<和>了
那使用between and会出现什么“异常”?导致你要发帖?
用Between and判断时,前后的字段类型要一致。
运行起来是debug error,我刚刚接触数据库,我是这样写的 CString SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TPlateNum,TCarInfo where '"+m_strCarQueryText+"' = TCarInfo.OwnerName and TPlateNum.PlateNum = TCarInfo.PlateNum and TPlateNum.BreakTime between m_DataTimeBegin and m_DataTimeEnd "; _RecordsetPtr pRecordset = m_database.Select(SelectSQL); 两个表之间查询某个时间段中的记录
CString SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TPlateNum,TCarInfo where '"+m_strCarQueryText+"' = TCarInfo.OwnerName and TPlateNum.PlateNum = TCarInfo.PlateNum and TPlateNum.BreakTime between '''+datetostr(m_DataTimeBegin) +''' and '''+ datetostr(m_DataTimeEnd )+''' "; _RecordsetPtr pRecordset = m_database.Select(SelectSQL);datetostr()是时间转成字符串,具体语言怎么转灵活变化
CString SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TPlateNum,TCarInfo where TCarInfo.OwnerName='"+m_strCarQueryText+"' and TPlateNum.PlateNum = TCarInfo.PlateNum and TPlateNum.BreakTime between m_DataTimeBegin and m_DataTimeEnd "; _RecordsetPtr pRecordset = m_database.Select(SelectSQL);你把红字那里调过来按我这个来写看看
那你能把CString SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TPlateNum,TCarInfo where TCarInfo.OwnerName='"+m_strCarQueryText+"' and TPlateNum.PlateNum = TCarInfo.PlateNum and TPlateNum.BreakTime between m_DataTimeBegin and m_DataTimeEnd ";这段语句打印出来吗?先不执行,然后放到SQLServer里面执行看看
CString SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TPlateNum,TCarInfo where '"+m_strCarQueryText+"' = TCarInfo.OwnerName and TPlateNum.PlateNum = TCarInfo.PlateNum and TPlateNum.BreakTime between m_DataTimeBegin and m_DataTimeEnd ";
_RecordsetPtr pRecordset = m_database.Select(SelectSQL); 两个表之间查询某个时间段中的记录
_RecordsetPtr pRecordset = m_database.Select(SelectSQL);datetostr()是时间转成字符串,具体语言怎么转灵活变化
_RecordsetPtr pRecordset = m_database.Select(SelectSQL);你把红字那里调过来按我这个来写看看
CString m_dataEnd=m_DateTimeEnd.Format( "%Y-%m-%D");
CString m_dataBegin=m_DateTimeBegin.Format( "%Y-%m-%d");
CString m_dataEnd=m_DateTimeEnd.Format( "%Y-%m-%d");
SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TCarInfo,TPlateNum where '" +m_strCarQueryText+"' = TCarInfo.OwnerName and TCarInfo.PlateNum=TPlate.PlateNum and '"+m_dataBegin+"'<=TPlateNum.BreakTime and '"+m_dataEnd+"'>=TPlateNum.BreakTime";
Message打印时时间段确实是在MFC控件中选定的那个时间,但是还有debug error
CString m_dateBegin = m_DateTimeBegin.Format( "%Y-%m-%d %H:%M:%S");
CString m_dateEnd = m_DateTimeEnd.Format( "%Y-%m-%d %H:%M:%S");
SelectSQL = "select TPlateNum.PlateNum, TPlateNum.BreakTime,TPlateNum.DealState,TCarInfo.OwnerName,TCarInfo.OwnerID, TCarInfo.OwnerPhone from TPlateNum,TCarInfo where TCarInfo.OwnerName = '"+m_strCarQueryText+"' and TPlateNum.PlateNum = TCarInfo.PlateNum and TPlateNum.BreakTime BETWEEN #" + m_dateBegin + "# AND #"+m_dateEnd+"# ";