const momentFromResult = (result, timezone) => { const dateMoment = moment().tz(timezone); dateMoment.set('year', result.get('year')); dateMoment.set('month', result.get('month') - 1); dateMoment.set('date', result.get('day')); dateMoment.set('hour', result.get('hour')); dateMoment.set('minute', result.get('minute')); dateMoment.set('second', result.get('second')); dateMoment.set('millisecond', result.get('millisecond')); return dateMoment; }
dateRangeGranularity() { if (!this.dateRange) { return null; } const msFrom = moment.tz(this.dateFromFormatted(), this.query.timezone); const msTo = moment.tz(this.dateToFormatted(), this.query.timezone).add(1, 'ms'); return this.query.minGranularity( this.query.granularityFor(msFrom), this.query.granularityFor(msTo), ); }
convertTz(field) { return `${this.timeStampCast(field)} || '${ moment().tz(this.timezone).format('Z') .replace('-', '+') .replace('+', '-') }'`; }
formatFromDate(date) { if (date && date.match(dateTimeLocalMsRegex)) { return date; } if (date && date.match(dateRegex)) { return `${date}T00:00:00.000`; } if (!date) { return moment.tz(date, this.query.timezone).format('YYYY-MM-DD 00:00:00'); } return moment.tz(date, this.query.timezone).format(moment.HTML5_FMT.DATETIME_LOCAL_MS); }
inIntegrationTimeZone(date) { return moment.tz(date, this.timezone); }
convertTz(field) { const targetTZ = moment().tz(this.timezone).format('Z'); return `CONVERT_TIMEZONE('${targetTZ}', ${field})`; }
convertTz(field) { const tz = moment().tz(this.timezone); // TODO respect day light saving const [hour, minute] = tz.format('Z').split(':'); const [hourInt, minuteInt] = [parseInt(hour, 10), parseInt(minute, 10) * Math.sign(parseInt(hour, 10))]; let result = field; if (hourInt !== 0) { result = `TIMESTAMPADD(HOUR, ${hourInt}, ${result})`; } if (minuteInt !== 0) { result = `TIMESTAMPADD(HOUR, ${minuteInt}, ${result})`; } return result; }
caldavEvent.start.tz === undefined && Number.isInteger(this.moment(caldavEvent.end).diff(this.moment(caldavEvent.start), 'days', true)) ) {
formatToDate(date) { if (date && date.match(dateTimeLocalMsRegex)) { return date; } if (date && date.match(dateRegex)) { return `${date}T23:59:59.999`; } if (!date) { return moment.tz(date, this.query.timezone).format('YYYY-MM-DDT23:59:59.999'); } return moment.tz(date, this.query.timezone).format(moment.HTML5_FMT.DATETIME_LOCAL_MS); }
convertTz(field) { return `TODATETIMEOFFSET(${field}, '${moment().tz(this.timezone).format('Z')}')`; }
convertTz(field) { return `CONVERT_TZ(${field}, @@session.time_zone, '${moment().tz(this.timezone).format('Z')}')`; }
caldavEvent.start.tz === undefined && Number.isInteger(this.moment(caldavEvent.end).diff(this.moment(caldavEvent.start), 'days', true)) ) {
caldavEvent.start.tz === undefined && Number.isInteger(this.moment(caldavEvent.end).diff(this.moment(caldavEvent.start), 'days', true)) ) {