запрос не работает в узле, но работает в postgres - PullRequest
0 голосов
/ 24 мая 2018

Версия узла - версия модуля 8.9.4 pg - 7.4.3

этот запрос

UPDATE test.new_orders
SET properties = properties || '{"statusid":1,"updatedAt":"2018-5-24 14:51:43"}'
WHERE to_timestamp((properties ->> 'updatedAt'),'YYYY-MM-DD HH24:MI:SS.US') <= now() - INTERVAL '20 seconds'
AND properties ->> 'partitionid' = '6';

в узле дает `

    Result {
    command: 'UPDATE',
    rowCount: 0,
    oid: null,        rows: [],        fields: [],
    _parsers: [],        RowCtor: null,        rowAsArray: false,
    _getTypeParser: [Function: bound ] }

, но в postgres еговсегда обновляет 3 строки.В чем смысл?Как с этим справиться?

PS Это мой метод

      getUpdatableOrdersAndUpdateStatuses(partitionid,orderProperties,interval) {
    return new Promise((resolve, reject) => {
        let query = `UPDATE test.new_orders
                        SET properties = properties || '${orderProperties}'
                     WHERE to_timestamp((properties ->> 'updatedAt'),'YYYY-MM-DD HH24:MI:SS.US') <= now() - INTERVAL '${interval}'
                     AND properties ->> 'partitionid' = '${partitionid}';`;
                     // test query = 'select * from test.new_orders'
                     console.log(query);         
        SQL.query(query, (err, res) => {
            if (err) {
                console.log(err);
                return reject(err);
            }
            console.log(res);
            return resolve(true);
        })
    });
}

Тестовый запрос (выберите * из test.new_orders) дает нормальный результат

и данные

orderid properties

5281    {"tarifid": "1", "statusid": 1, "createdAt": "2018-05-24T13:40:57.544955", "updatedAt": "2018-5-24 14:46:49", "partitionid": "6"}

15  {"tarifid": "1", "statusid": 1, "createdAt": "2018-05-24T14:38:57.609023", "updatedAt": "2018-5-24 14:46:49", "partitionid": "6"}

152 {"tarifid": "1", "statusid": 1, "createdAt": "2018-05-24T14:39:11.655951", "updatedAt": "2018-5-24 14:46:49", "partitionid": "6"}

потрясающе !!!Забыли добавить в ЗОНУ ВРЕМЕНИ 'Азия / Ереван'

...