从Oralce数据库(第三方)读出的Date数据,怎么转为为time_t在MCF控件CListCtrl控件中正确的显示时间

首先,先看一个怎么输出time_类型数据例子:

strftime (char *s, size_t maxsize, const char *format, const struct tm *tp); //格式化输出函数

 

#include <stdio.h>
#include <time.h>
int main ()
{
    static char str_time[100];
    struct tm *local_time = NULL;
    time_t utc_time; 
        
    utc_time = time (NULL);
    local_time = localtime(&utc_time);
    strftime(str_time, sizeof(str_time), "%Y-%m-%d,%H:%M:%S", local_time);
        
    printf ("Time: %s/n", str_time);
    return 0;
}


 

运行输出:

./time
Time: 2009-08-14,13:59:22

原文:http://blog.csdn.net/c_spark/article/details/4446460

 

现在我们来看本文的主题:

第一,连接数据库,

///<初始化
        StartOciLib(oci_error_callback );
        ///<连接数据库
        m_pConntion = OCI_ConnectionCreate(m_strDBConn.c_str(), m_strUserName.c_str(), 
                                                                        m_strPwd.c_str(), OCI_SESSION_DEFAULT);


 

第二,解析数据库的字段UPDATE_TIME,

上面是数据库读出的字段格式,怎么才能对到MFC的ClistBox上面呢?

2,执行SQL语句

    pState = OCI_StatementCreate(m_pConntion);

    if (NULL == pState)
    {
        return false;
    }

    ///<执行SQL,并返回结果集
    pResult = ExecuteQuery_Select( pState, strSQL);


3.对返回的结果集进行解析

ClistBox的控件变量是:m_List_Cstrl.

///<解析字段: UPDATE_TIME 创建时间
<pre class="cpp" name="code">         while (OCI_FetchNext(pResult))   
      {        
      do{   if (OCI_IsNull2(pResult,"UPDATE_TIME"))
            {
                CString str25_6="";
                str25_6.Format("第%d 行的字段Update_Time解析为空,设为-1", num );
                m_List_Ctrl.SetItemText(num,row_num++,str25_6);
            }
            else
            {
               <strong><span style="color:#3366ff;"> OCI_Date * s_time =NULL;
                s_time = OCI_GetDate2(pResult, "UPDATE_TIME"); //从结果解对到OCI_Date类型的数据
                 static char str_time[100];
                 struct tm *local_time = NULL;
                 time_t utc_time;
                 utc_time = time (NULL);
                 
                 OCI_DateToCTime(s_time, NULL ,&utc_time); //把OCI_Date类型转换为time_t;
                  local_time = localtime(&utc_time);      //把time_t转换为 strut tm类型

                 strftime(str_time, sizeof(str_time), "%Y-%m-%d %H:%M:%S", local_time); //把strut tm类型通过strftime</span></strong>
<strong><span style="color:#3366ff;">                                                                               //使之按照"%Y-%m-%d %H:%M:%S格式显示</span></strong>
                 CString straa = "";
                 straa.Format("%s",str_time);
                 m_List_Ctrl.SetItemText(num,row_num++,straa); //使之在CListBox显示  
           } while (0);      
        num++; 
       }

 

上面蓝色的是类型转换的核心。

 

这样就可以完成从数据库date类型到MFC工程的时间类型显示了,希望能对你有所帮助。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值