在我的数据库中有一个表“日志”,只有1个字段“时间”,类型smalldatetime
我在VC中用下面的语句向这个表中写入数据:
wchar_t ti[32] = _T("2010-8-1");
SQLINTEGER time_size = SQL_NTS;
sRet = SQLBindParameter(hStmt,1,SQL_PARAM_INPUT,SQL_C_WCHAR,SQL_TIMESTAMP,4,0,ti,sizeof(ti),&time_size);
sRet = SQLPrepare(hStmt,TEXT("insert into 日志 values (?)"),SQL_NTS);
sRet = SQLExecute(hStmt);
但是SQLExecute这句会失败,用SQLGetDiagRec获取到的错误是:造型说明无效的字符值。
找资料也找不到,弄了半天了,实在弄不懂到底是哪里出错了,还请高手指教!
我在VC中用下面的语句向这个表中写入数据:
wchar_t ti[32] = _T("2010-8-1");
SQLINTEGER time_size = SQL_NTS;
sRet = SQLBindParameter(hStmt,1,SQL_PARAM_INPUT,SQL_C_WCHAR,SQL_TIMESTAMP,4,0,ti,sizeof(ti),&time_size);
sRet = SQLPrepare(hStmt,TEXT("insert into 日志 values (?)"),SQL_NTS);
sRet = SQLExecute(hStmt);
但是SQLExecute这句会失败,用SQLGetDiagRec获取到的错误是:造型说明无效的字符值。
找资料也找不到,弄了半天了,实在弄不懂到底是哪里出错了,还请高手指教!
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Input Output
2007-05-08 12:35:29
2007-05-08 12:35:00
2007-05-08 12:35:30
2007-05-08 12:36:00
2007-05-08 12:59:59.998
2007-05-08 13:00:00
数据类型 范围 精确度
datetime 1753 年 1 月 1 日到 9999 年 12 月 31 日 3.33 毫秒
smalldatetime 1900 年 1 月 1 日到 2079 年 6 月 6 日 1 分钟
select cast(getdate() as smalldatetime)
还是要谢谢二位~~