Added dayOfWeek to date/datetime fields

This commit is contained in:
Hamed Masafi 2022-12-06 10:25:43 +03:30
parent ba25bcb8c2
commit 7ca5d62cc9
4 changed files with 19 additions and 0 deletions

View File

@ -287,6 +287,10 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const
return QStringLiteral("CAST(strftime('%d', %1) AS INT)")
.arg(createConditionalPhrase(d->left));
case PhraseData::DatePartDayOfWeek:
return QStringLiteral("CAST(strftime('%w', %1) AS INT)")
.arg(createConditionalPhrase(d->left));
case PhraseData::DatePartHour:
return QStringLiteral("CAST(strftime('%H', %1) AS INT)")
.arg(createConditionalPhrase(d->left));

View File

@ -266,6 +266,9 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const
if (d->type == PhraseData::WithoutOperand) {
switch (op) {
case PhraseData::DatePartDayOfWeek:
return QStringLiteral("DATEPART(WEEKDAY, %1)")
.arg(createConditionalPhrase(d->left));
case PhraseData::DatePartYear:
case PhraseData::DatePartMonth:
case PhraseData::DatePartDay:

View File

@ -52,6 +52,10 @@ ConditionalPhrase FieldPhrase<QDate>::day() {
return ConditionalPhrase(this, PhraseData::DatePartDay);
}
ConditionalPhrase FieldPhrase<QDate>::dayOfWeek() {
return ConditionalPhrase(this, PhraseData::DatePartDayOfWeek);
}
FieldPhrase<QTime>::FieldPhrase(const char *className, const char *s) :
AbstractFieldPhrase(className, s)
{}
@ -125,6 +129,10 @@ ConditionalPhrase FieldPhrase<QDateTime>::day() {
return ConditionalPhrase(this, PhraseData::DatePartDay);
}
ConditionalPhrase FieldPhrase<QDateTime>::dayOfWeek() {
return ConditionalPhrase(this, PhraseData::DatePartDayOfWeek);
}
ConditionalPhrase FieldPhrase<QDateTime>::hour() {
return ConditionalPhrase(this, PhraseData::DatePartHour);
}

View File

@ -75,6 +75,8 @@ public:
ConditionalPhrase year();
ConditionalPhrase month();
ConditionalPhrase day();
ConditionalPhrase dayOfWeek();
};
template<>
@ -115,6 +117,8 @@ public:
ConditionalPhrase month();
ConditionalPhrase day();
ConditionalPhrase dayOfWeek();
ConditionalPhrase hour();
ConditionalPhrase minute();
ConditionalPhrase second();