|
|
@ -109,33 +109,28 @@ const sqlite3 = { |
|
|
|
const unit = convertUnits(rawUnit, 'sqlite'); |
|
|
|
const unit = convertUnits(rawUnit, 'sqlite'); |
|
|
|
switch (unit) { |
|
|
|
switch (unit) { |
|
|
|
case 'seconds': |
|
|
|
case 'seconds': |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) * 86400)`; |
|
|
|
sql = `(strftime('%s', ${datetime_expr1}) - strftime('%s', ${datetime_expr2}))`; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'minutes': |
|
|
|
case 'minutes': |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) * 1440)`; |
|
|
|
sql = `(strftime('%s', ${datetime_expr1}) - strftime('%s', ${datetime_expr2})) / 60`; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'hours': |
|
|
|
case 'hours': |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) * 24)`; |
|
|
|
sql = `(strftime('%s', ${datetime_expr1}) - strftime('%s', ${datetime_expr2})) / 3600`; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'milliseconds': |
|
|
|
case 'milliseconds': |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) * 86400000)`; |
|
|
|
sql = `(strftime('%s', ${datetime_expr1}) - strftime('%s', ${datetime_expr2})) * 1000`; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'weeks': |
|
|
|
case 'weeks': |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 7)`; |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 7)`; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'months': |
|
|
|
case 'months': |
|
|
|
sql = `(ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 365))
|
|
|
|
sql = `(strftime('%Y', ${datetime_expr1}) - strftime('%Y', ${datetime_expr2})) * 12 + (strftime('%m', ${datetime_expr1}) - strftime('%m', ${datetime_expr2})) `; |
|
|
|
* 12 + (ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 365 / 12))`;
|
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'quarters': |
|
|
|
case 'quarters': |
|
|
|
sql = ` |
|
|
|
sql = `(strftime('%Y', ${datetime_expr1}) - strftime('%Y', ${datetime_expr2})) * 4 + (strftime('%m', ${datetime_expr1}) - strftime('%m', ${datetime_expr2})) / 3`; |
|
|
|
ROUND((JULIANDAY(${datetime_expr1})) / 365 / 4) - |
|
|
|
|
|
|
|
ROUND((JULIANDAY(${datetime_expr2})) / 365 / 4) + |
|
|
|
|
|
|
|
(ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 365)) * 4 |
|
|
|
|
|
|
|
`;
|
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'years': |
|
|
|
case 'years': |
|
|
|
sql = `ROUND((JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})) / 365)`; |
|
|
|
sql = `strftime('%Y', ${datetime_expr1}) - strftime('%Y', ${datetime_expr2})`; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'days': |
|
|
|
case 'days': |
|
|
|
sql = `JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})`; |
|
|
|
sql = `JULIANDAY(${datetime_expr1}) - JULIANDAY(${datetime_expr2})`; |
|
|
|