用ADO连接数据库,解析出来的TImestamp类型数据不包含秒,求解为什么?
VARIANT var;
CString str;
str.Empty();
var=m_pRecordPtr->GetCollect(_variant_t(long(i)));
if(var.vt != VT_NULL)
str=(LPCSTR)_bstr_t(var);
查询语句为 "select * from xxx*也就是显示包含Timestamp数据表的全部内容。
这样返回来的结果集在用(LPCSTR)_bstr_t(var);解释出来的时候只包含到秒的数据,没有秒后面的小数点了。
var=m_pRecordPtr->GetCollect(_variant_t(long(i))); 查看到的Var值是一个包含很多位小数点的数值。
------解决思路----------------------
DATE:
使用7字节保存日期时间数据,只能精确到1秒。
TIMESTAMP(fractional_seconds_precision) :
使用7-11字节保存日期时间数据,根据指定精度(0-9)来决定,缺省为6,可精确到纳秒。
//1秒 = 1,000微秒 = 1,000,000毫秒 = 1,000,000,000纳秒
//JAVA:PreparedStatement.setTimestamp(1, new java.sql.Timestamp(毫秒数));
//格式化输出毫秒,后面的‘3’指定输出精确度
SELECT to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS.FF3') FROM DUAL;