gpt4 book ai didi

c++ - 错误 : no type named ‘_traits’ in ‘class date::year_month_day’ ?

转载 作者:行者123 更新时间:2023-11-28 23:18:07 25 4
gpt4 key购买 nike

我正在使用 Roland Bock's sqlpp11 mysql 查询和 Howard Hinnant's date 的库在我的项目中运行日期的库。

在我的一个更新查询中出现以下错误。

/usr/local/include/sqlpp11/rhs_wrap.h: In instantiation of ‘struct sqlpp::rhs_wrap_t<date::year_month_day, false>’:
/usr/local/include/sqlpp11/assignment.h:63:12: required from ‘struct sqlpp::assignment_t<sqlpp::column_t<changestreet::Goals, changestreet::Goals_::GoalEndDate>, date::year_month_day>’
sqlOperations/sqlppDbConnection.cpp:286:65: required from ‘bool setEmergencyFundGoal(T1, T2, T2, T3, T3) [with T1 = int; T2 = const char*; T3 = double]’
main.cpp:705:113: required from here
/usr/local/include/sqlpp11/rhs_wrap.h:119:43: error: no type named ‘_traits’ in ‘class date::year_month_day’
using _traits = typename Expr::_traits;

这是更新语句

auto efGoal = db_cs.run(update(g).set(g.goalAmount = emergencyFund,
g.goalEndDate = contributionEndDate, // Line number 286
g.goalContributionStartDate = currentDate(),
g.goalContributionEndDate = contributionEndDate,
g.goalInitialContribution = initialContribution,
g.goalMaximumAchievableAmount = emergencyFund,
g.goalCreatedOn = currentDateTime(),
g.goalUpdatedOn = currentDateTime()
).where(g.goalName == goalName
and g.goalType == goalType
and g.usersUserId == userId)
);

这是在 rhs 中使用的值

auto contributionEndDate = lastDateOfMonth(currentDate(), date::months{contributionTenure}) ;

这里是contribution lastDateOfMonth()函数的定义。

date::year_month_day lastDateOfMonth(date::year_month_day givenDate, date::months monthsNum) {
date::year_month_day newDate = year_month_day{givenDate} + monthsNum;
newDate = newDate.year()/newDate.month()/last;
return newDate;
}

currentDate() 函数

date::year_month_day currentDate() {
auto currentTime = system_clock::now();
auto currentDate = floor<days>(currentTime);
return currentDate;
}

列名 goal_end_date 在 mysql 表结构中属于 DATE 类型。

最佳答案

我需要将 mysql 数据类型从 DATE 更改为 DATETIME,之后 system_clock::time_point 类型的变量赋值变量就像 charm 一样工作。

它也适用于具有变量分配类型 system_clock::day_point 的 mysql DATE 数据类型。

P.S:我需要修改返回类型为 syste_clock::time_point 的两个给定函数。

关于c++ - 错误 : no type named ‘_traits’ in ‘class date::year_month_day’ ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42952457/

25 4 0