我正在开发一个软件,该软件必须每周维护一个SQL数据库记录。因此,每次启动时,它都不知道当前一周的记录是否已经创建(因此只需要更新它)(因此需要创建该记录)。所有记录都将有一个"日期-时间"参数,其日期值对应于相应星期的第一天。
那么,使用Qt,我怎么能知道那一周的记录是否已经存在?(在算法中,而不是SQL sintax)考虑到我所做的所有算法尝试,我似乎无法逃避需要知道数据库中的最后一天是否是本周的一部分(或者,正如我的问题一样,知道哪一天是本周第一天,这样我就可以与数据库的最后一个条目进行比较),但如何知道呢?我可以做一个手动计算,比如:选择一周中的当前日期和对应的日期,减去x天,直到我到达本周的星期一,看看这是否是存储在数据库中的日期,但我想知道是否有一个更智能的代码,我缺少它。
cco:类似这样的东西:
const QDate lastRecordDate = QDateTime::fromString(query.record().value(0).toString(),DOWNLOAD_DB_DATETIME_FORMAT).date();
const QDate currDate = QDate::currentDate();
const qint32 dayOfWeek = currDate.dayOfWeek();
const qint32 daysDiff = Qt::Monday - dayOfWeek;
const QDate firstDayOfThisWeek = currDate.addDays(daysDiff);
if (lastRecordDate != firstDayOfThisWeek)
createWeeksRecord = true;
尝试在QDate上使用weekNumber()
方法。
const QDate lastRecordDate = QDateTime::fromString(query.record().value(0).toString(),DOWNLOAD_DB_DATETIME_FORMAT).date();
const QDate currDate = QDate::currentDate();
if (lastRecordDate.weekNumber() != currDate.weekNumber())
{
// Insert new record here.
}
else
{
// Update record here.
}