【发布时间】:2013-06-01 19:42:49
【问题描述】:
我有一个名为 date() 的 C++ 函数,它以字符串形式返回当前日期:
string date()
{
time_t seconds = time (NULL);
struct tm * timeinfo = localtime (&seconds);
ostringstream oss;
oss << (timeinfo->tm_year + 1900)
<< "-" << (timeinfo->tm_mon + 1)
<< "-" << timeinfo->tm_mday;
string data = oss.str();
return data;
}
我需要将date() 的返回值与存储在我的一张表中的值进行比较。这是我迄今为止尝试过的:
if(strcmp(PQgetvalue(res,row,col),date()) != 0)
但是,编译器不断向我抛出以下错误:
错误:无法将参数 '2' 的 'std::string {aka std::basic_string}' 转换为 'const char*' 到 'int strcmp(const char*, const char*)'强>
谁能帮我找到解决办法?
【问题讨论】:
-
对于转换尝试使用 c_str() 函数。
-
如果您使用
libpqtypes处理大部分此类事情,您将节省大量时间和麻烦。 -
现在,我只需要一个快速的解决方案来在项目中实施。稍后,我会研究它!
-
等一下……您知道 PostgreSQL 中的
CURRENT_DATE、CURRENT_TIME和CURRENT_TIMESTAMP函数,对吧? (例如,尝试在您的任何数据库上运行以下 DML 语句:SELECT CURRENT_TIMESTAMP;。)
标签: c++ postgresql date compare