c++ - 如何在 C++ 中从 SQL 中检索日期字段
问题描述
使用 Microsoft Access,我有一个Date/Time
数据类型的字段。我想将它加载到我的 C++ 程序中,但我不知道整数数据类型Date/Time
是什么。这是我用来检索它的代码,
const char* qry = "SELECT * FROM TBL";
//Query data
m_ReturnStatus = SQLAllocStmt(m_Connection, &m_QueryStatement);
m_ReturnStatus = SQLPrepare(m_QueryStatement, (SQLCHAR*)qry, SQL_NTS);
/* Excecute the query */
m_ReturnStatus = SQLExecute(Get_Instance().m_QueryStatement);
m_ReturnStatus = SQLFetch(Get_Instance().m_QueryStatement);
while (SQL_SUCCEEDED(Get_Instance().m_ReturnStatus))
{
unsigned long date; //or char date[11]
m_ReturnStatus = SQLGetData(m_QueryStatement, 1, SQL_C_ULONG, &date, 1, nullptr);
m_ReturnStatus = SQLFetch(m_QueryStatement); //returns next rowset
std::cout << date << std::endl;
};
m_ReturnStatus = SQLFreeStmt(m_QueryStatement, SQL_DROP);
在这个例子中,数据库只是
TableDate
12/03/2021
12/03/2021
.
.
.
使用date
asunsigned long
时,输出12/03/2021
为1044
。使用date
as char [11]
with SQLGetData(m_QueryStatement, 1, SQL_C_CHAR, date, 11, nullptr);
,输出是意外的。第一个控制台输出是(]ù
,然后是源源不断的╨☻
,这看起来很奇怪,因为实际的日期值没有改变。
另请注意,在 Access 中,有一个DateValue
用于将日期插入表中的函数,返回值为12/03/2021
is 44267
。
解决方案
推荐阅读
- java - 确定正确状态字符串的条件逻辑
- delphi - TIdSSLIOHandlerSocketOpenSSL 和 TLS 协议
- r - 将 position_dodge 与 geom_line 一起使用
- linq - 列出所有最高数据行或特定数据行
- angular - 如何使用打字稿修复角度5中所有页面的“标题中的搜索输入字段”
- python - 返回一个仅有时会使用的对象
- ios - 在导航栏中更改 UIImageView 的帧大小不起作用
- angular - 测试使用服务 Jasmine spyOnObject 的函数
- python - Flask 请求停止 300 毫秒
- linux - 涉及当前系统时间的 bash 别名