From 6881ce3bed705e5cf2e5e1072ac353e331ecc124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D5=A1=C9=A8=D5=BC=C9=A2=D3=84=D5=A1=D6=85=D5=BC=C9=A2?= Date: Mon, 27 Nov 2023 17:43:58 +0800 Subject: [PATCH] feat(nocodb): date month filtering logic --- packages/nocodb/src/db/conditionV2.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/nocodb/src/db/conditionV2.ts b/packages/nocodb/src/db/conditionV2.ts index 2dd71f9658..c50ca1dba1 100644 --- a/packages/nocodb/src/db/conditionV2.ts +++ b/packages/nocodb/src/db/conditionV2.ts @@ -1,4 +1,9 @@ -import { isNumericCol, RelationTypes, UITypes } from 'nocodb-sdk'; +import { + isDateMonthFormat, + isNumericCol, + RelationTypes, + UITypes, +} from 'nocodb-sdk'; import dayjs from 'dayjs'; // import customParseFormat from 'dayjs/plugin/customParseFormat.js'; import type { BaseModelSqlv2 } from '~/db/BaseModelSqlv2'; @@ -466,7 +471,13 @@ const parseConditionV2 = async ( : 'YYYY-MM-DD HH:mm:ssZ'; if ([UITypes.Date, UITypes.DateTime].includes(column.uidt)) { - const now = dayjs(new Date()); + let now = dayjs(new Date()); + const dateFormatFromMeta = column?.meta?.date_format; + if (dateFormatFromMeta && isDateMonthFormat(dateFormatFromMeta)) { + // reset to 1st + now = dayjs(now).date(1); + if (val) val = dayjs(val).date(1); + } // handle sub operation switch (filter.comparison_sub_op) { case 'today':