加个别名试试
select a.*, case when dateadd(dd,AddDay,CreateDays) > getdate() then 1 else 0 end as OnTime ,
(AddDay - datediff(dd,CreateDays,getdate())) as LeftDays
from CardInfor a where CardID in (select CardID from OpenUser where HardCode='0000000000000000000000000')
select a.*, case when dateadd(dd,AddDay,CreateDays) > getdate() then 1 else 0 end as OnTime ,
(AddDay - datediff(dd,CreateDays,getdate())) as LeftDays
from CardInfor a where CardID in (select CardID from OpenUser where HardCode='0000000000000000000000000')
还是在sql查询分析器里??如果是前者,那么可能是sql连接方式问题,换一种试试
如果是后者,就怀疑是数据问题
换连接方式换什么呢?
我现在用的是OLEDB ,推荐下换什么啊?
HRESULT hr;
hr=m_pConnection.CreateInstance(__uuidof(Connection)); try{
if (SUCCEEDED(hr)){
hr=m_pConnection->Open(_bstr_t(DBString), _bstr_t(L""),
_bstr_t(L""),
adModeUnknown);
if SUCCEEDED(hr){
TRACE("CDBAccess::ConnectDB() 连接成功!\n");
m_bIsConnected=TRUE;
return TRUE;
}else{
TRACE("CDBAccess::ConnectDB() 连接失败!\n");
return FALSE;
}
}else{
TRACE("CDBAccess::ConnectDB() 创建数据库对象失败! ErrorCode = %08X" , hr);
return FALSE;
}
}
catch(_com_error &e){
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description()); CString strErrMess;
strErrMess.Format(" CDBAccess::ConnectDB() Error: %08lx Msg: %s Source: %s Description: %s\n",
e.Error(),
e.ErrorMessage(),
(LPCTSTR)bstrSource,
(LPCTSTR)bstrDescription);
TRACE("%s\n",strErrMess);
return 0;
}
catch(...){
TRACE("CDBAccess::ConnectDB() exception \n");
return 0;
}
连接数据库的代码!
那个DBString ,就是我刚才发的那一串了
using System.Data.SqlClient然後用SqlConnection來連接sql2005
去VC版問吧
我觉得应该用完就应该close啊
否则open太多,不就玩完了
1、CreateDays 尽量用datatime,否则用isdate判断一下
2、Provider=SQLOLEDB.1;----> Provider=MSDASQL.1;
3、升级ado