@qrvey/formula-lang
Version:
QFormula support for qrvey projects
50 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SECOND = void 0;
const scripts_1 = require("../utils/elasticsearch/scripts");
const utils_1 = require("../utils");
const constants_1 = require("../constants");
/**
* Returns the number of the SECOND in a Date.
*/
exports.SECOND = {
identifier: 'SECOND',
operationScope: constants_1.OPERATION_SCOPE.RAW,
functionScope: [constants_1.OPERATION_SCOPE.RAW],
parameters: [
{
identifier: 'DATE',
optional: false,
expectedPrimitive: constants_1.AST_PRIMITIVES.DATE,
validator: [utils_1.isDateParam],
},
],
transpiler: {
elasticsearch,
snowflake,
redshift,
postgresql,
databricks,
},
primitiveResult: constants_1.AST_PRIMITIVES.NUMBER,
};
function elasticsearch(value) {
return (0, scripts_1.secondScript)(value);
}
function SQL(value) {
return `DATE_PART('second', ${value})`;
}
function snowflake(value) {
return SQL(value);
}
function redshift(value) {
return SQL(value);
}
function postgresql(value) {
return SQL(value);
}
function databricks(value) {
const sqlExpression = SQL(value);
return `CAST(${sqlExpression} AS INT)`;
}
//# sourceMappingURL=second.js.map