按升序日期索引,但最后显示过去日期

时间:2017-07-17 22:21:19

标签: javascript postgresql knex.js

我希望按顺序按日查询行:

  1. 今天
  2. 将来
  3. 过去
  4. 目前我正在做一个这样的简单查询:

    getLatest(howMany, offset) {
        return knex
            .select('*')
            .from('event')
            .orderBy('start_time', 'asc')
            .offset(offset)
            .limit(howMany);
    }
    

    但问题是它首先显示过去的时间戳。我知道我可以通过这样的记录:

    knex('event')
        .select('id')
        .whereRaw("start_time < NOW()")
    

    更新:有没有办法让这个工作与偏移?每当用户到达底部以获取更多事件时,将运行此查询以获得无限的Feed。索引可能吗?

    这是我的架构:

    knex.schema.createTable('event', (table) => {
        table.increments().primary();
        table.dateTime('start_time').notNullable();
    })
    

1 个答案:

答案 0 :(得分:2)

您必须使用orderByRaw创建一个ORDER BY子句,如

ORDER BY start_time < current_timestamp, start_time