当前位置: 代码迷 >> VC >> VC中ADO连接ORACL数据库,解析Timestamp类型不完全,求解!解决方法
  详细解决方案

VC中ADO连接ORACL数据库,解析Timestamp类型不完全,求解!解决方法

热度:273   发布时间:2016-05-05 00:02:40.0
VC中ADO连接ORACL数据库,解析Timestamp类型不完全,求解!
用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;
  相关解决方案