From 90ed6690ed3bcfaa805d9c67bb86516ebf6e46cd Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Fri, 13 Jan 2023 12:43:12 +0800 Subject: [PATCH] fix(nocodb): revise datetime diff year sql for sqlite --- .../db/sql-data-mapper/lib/sql/functionMappings/sqlite.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/sqlite.ts b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/sqlite.ts index d95430e26b..0a94d996e7 100644 --- a/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/sqlite.ts +++ b/packages/nocodb/src/lib/db/sql-data-mapper/lib/sql/functionMappings/sqlite.ts @@ -130,7 +130,10 @@ const sqlite3 = { sql = `(strftime('%Y', ${datetime_expr1}) - strftime('%Y', ${datetime_expr2})) * 4 + (strftime('%m', ${datetime_expr1}) - strftime('%m', ${datetime_expr2})) / 3`; break; case 'years': - sql = `strftime('%Y', ${datetime_expr1}) - strftime('%Y', ${datetime_expr2})`; + sql = `CASE + WHEN (JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) >= 0 THEN FLOOR(((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 365.25)) + ELSE CEILING(((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 365.25)) + END`; break; case 'days': sql = `JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})`;