group by date - postgres, mysql

This commit is contained in:
Jan Prochazka
2020-06-26 15:48:02 +02:00
parent bf24796899
commit c38aac4015
3 changed files with 58 additions and 3 deletions

View File

@@ -1,5 +1,30 @@
const SqlDumper = require('../default/SqlDumper');
class MySqlDumper extends SqlDumper {}
class MySqlDumper extends SqlDumper {
/** @param type {import('@dbgate/types').TransformType} */
transform(type, dumpExpr) {
switch (type) {
case 'GROUP:YEAR':
case 'YEAR':
this.put('^year(%c)', dumpExpr);
break;
case 'MONTH':
this.put('^month(%c)', dumpExpr);
break;
case 'DAY':
this.put('^day(%c)', dumpExpr);
break;
case 'GROUP:MONTH':
this.put("^date_format(%c, '%s')", dumpExpr, '%Y-%m');
break;
case 'GROUP:DAY':
this.put("^date_format(%c, '%s')", dumpExpr, '%Y-%m-%d');
break;
default:
dumpExpr();
break;
}
}
}
module.exports = MySqlDumper;

View File

@@ -1,5 +1,30 @@
const SqlDumper = require('../default/SqlDumper');
class PostgreDumper extends SqlDumper {}
class PostgreDumper extends SqlDumper {
/** @param type {import('@dbgate/types').TransformType} */
transform(type, dumpExpr) {
switch (type) {
case 'GROUP:YEAR':
case 'YEAR':
this.put('^extract(^year ^from %c)', dumpExpr);
break;
case 'MONTH':
this.put('^extract(^month ^from %c)', dumpExpr);
break;
case 'DAY':
this.put('^extract(^day ^from %c)', dumpExpr);
break;
case 'GROUP:MONTH':
this.put("^to_char(%c, '%s')", dumpExpr, 'YYYY-MM');
break;
case 'GROUP:DAY':
this.put("^to_char(%c, '%s')", dumpExpr, 'YYYY-MM-DD');
break;
default:
dumpExpr();
break;
}
}
}
module.exports = PostgreDumper;

View File

@@ -142,7 +142,12 @@ function CellFormattedValue({ value }) {
if (_.isDate(value)) return moment(value).format('YYYY-MM-DD HH:mm:ss');
if (value === true) return '1';
if (value === false) return '0';
if (_.isNumber(value)) return value.toLocaleString();
if (_.isNumber(value)) {
if (value >= 10000 || value <= -10000) {
return value.toLocaleString();
}
return value.toString();
}
if (_.isString(value)) {
if (dateTimeRegex.test(value)) return moment(value).format('YYYY-MM-DD HH:mm:ss');
return highlightSpecialCharacters(value);