【问题标题】:Mysql query time issue?mysql查询时间问题?
【发布时间】:2019-09-18 09:09:03
【问题描述】:

您好,我正在尝试使用此查询获取 10 分钟前和现在之间的所有记录。

SELECT task_id, task_title, task_assigned_phone_number, task_assigned_name, task_assigned_user_id, task_guest_id, task_creator_id
FROM TASKS
WHERE task_reminder IS NOT NULL AND
      task_reminder > ? AND
      task_reminder <= ? AND
      reminded = 0 AND
      task_complete = 0
ORDER BY task_reminder ASC";

我在 sqlfiddle 上有架构和 SQL 查询,当您运行查询时,您可以看到 0 条记录到位。我包含的时间基于 nodejs 上的 new Data().getTime() 。我应该做什么?我尝试了 new Date()..toUTCString() 但仍然有问题。

http://sqlfiddle.com/#!9/c6a361/7

【问题讨论】:

    标签: javascript mysql sql node.js database


    【解决方案1】:

    我不确定您为什么将 Unix 纪元用于 timestamp 列。我希望有一个像这样的WHERE 子句:

    WHERE t.task_reminder IS NOT NULL AND
          t.task_reminder > now() - interval 10 minute AND
          t.reminded = 0 AND
          t.task_complete = 0
    

    如果您以后有提醒,您可能还需要t.task_reminder &lt; now()

    Here 是一个 sql小提琴。请注意,表中的数据需要更改才能证明这一点。

    【讨论】:

    • 你能在 sqlfiddle 中更新它并将新链接发给我吗?-sqlfiddle.com/#!9/c6a361/9 我试过这样,但似乎不起作用
    • 将第一行和第二行复制并粘贴到您的 where 子句中。
    • 它在我的 where 子句中......还是我错过了什么?
    【解决方案2】:

    这是您的时间戳格式的问题。试试这个:

    SELECT * FROM TASKS 
    WHERE task_reminder IS NOT NULL 
    AND task_reminder > '2019-09-17 00:00:00' 
    AND task_reminder <= '2019-09-18 00:00:00' 
    AND reminded = 0 
    AND task_complete = 0 
    ORDER BY task_reminder ASC;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2011-11-14
      相关资源
      最近更新 更多