RT,导入到文本的数据中时间格式的数据只显示年月日时分,秒没显示!
比如说数据库中的2007-01-01 上午8:20:20导入到文本他只有2007-01-01 8:20AM,
再把数据导回数据库他就显示2007-01-01 上午8:20:00;
如果本身文本有2007-01-01 8:20:20AM,那导入数据库就是2007-01-01 上午8:20:20,这个完全没问题。
我用的语句是:
if(bcp_init(dbproc,"test_db..test","test_db.txt",(LPCSTR)NULL,DB_IN)==FAIL)
throw "bcp_init error";
if(bcp_control(dbproc,BCPFIRST,(DBINT)1)==FAIL)
throw "bcp_control error";
if(bcp_columns(dbproc,4)==FAIL)
throw "bcp_columns error";
//SQLCHAR换成SQLVARCHAR也不行换成SQLDATETIMN文本就显示不出了该时间了,所以也不合适
if(bcp_colfmt(dbproc,1,SQLCHAR,0,(DBINT)-1,(LPCBYTE)"\t",1,1)==FAIL
throw "bcp_colfmt error (col:1)";
if(bcp_exec(dbproc,&rowsread)==FAIL)
{
exit(ERREXIT);
}
比如说数据库中的2007-01-01 上午8:20:20导入到文本他只有2007-01-01 8:20AM,
再把数据导回数据库他就显示2007-01-01 上午8:20:00;
如果本身文本有2007-01-01 8:20:20AM,那导入数据库就是2007-01-01 上午8:20:20,这个完全没问题。
我用的语句是:
if(bcp_init(dbproc,"test_db..test","test_db.txt",(LPCSTR)NULL,DB_IN)==FAIL)
throw "bcp_init error";
if(bcp_control(dbproc,BCPFIRST,(DBINT)1)==FAIL)
throw "bcp_control error";
if(bcp_columns(dbproc,4)==FAIL)
throw "bcp_columns error";
//SQLCHAR换成SQLVARCHAR也不行换成SQLDATETIMN文本就显示不出了该时间了,所以也不合适
if(bcp_colfmt(dbproc,1,SQLCHAR,0,(DBINT)-1,(LPCBYTE)"\t",1,1)==FAIL
throw "bcp_colfmt error (col:1)";
if(bcp_exec(dbproc,&rowsread)==FAIL)
{
exit(ERREXIT);
}
dbuse (dbproc, "test_db"); //
dbsqlexec (dbproc); // send command buffer to SQL server
dbresults(dbproc);
dbbind (dbproc, 1, NTBSTRINGBIND, (DBINT) 0, (char *)time);
// now process the rows
while (dbnextrow(dbproc) != NO_MORE_ROWS)
{
printf ("time: %s\n", time);
}
怎么会有这么奇怪的事情,NTBSTRINGBIND和SQLCHAR按照MSSQL2000帮助文档说应该是对应的啊,唏嘘不已!忘解答!