【问题标题】:MYSQL - DATE/TIME show last 30minutesMYSQL - 日期/时间显示最后 30 分钟
【发布时间】:2017-05-17 11:26:26
【问题描述】:

我有一个列 (lastlogin),其中包含以下 value = '17th May 2017 09:40:43 AM' ----

创建图章的php函数:

date('jS F Y h:i:s A');

如何进行选择查询以显示从当前时间开始的最后 30 分钟内的 (lastlogin)?

我猜我们必须将日期/时间转换为字符串并将 2 分开?

任何帮助都会很棒。

更新:

我尝试了以下方法,但没有成功返回表中的记录:

  SELECT user_id, ('lastlogin' >= DATE_FORMAT(NOW() - INTERVAL 30 MINUTE,'%D %M %Y %H:%m:%s %p')) as result
  FROM login_last
  where lastlogin >= DATE_FORMAT(NOW() - INTERVAL 30 MINUTE,'%D %M %Y %H:%m:%s %p')
  GROUP BY user_id

表结构

   [id] int(8)  
   [user_id]    int(11)
   [lastlogin]  varchar(30) 
   [browser]    varchar(300)    

【问题讨论】:

  • 要进行比较,您需要比较日期时间类型或格式化的日期时间,以便正确“排序”。它是存储为字符串还是日期时间/时间戳?
  • 存储为字符串
  • 您能否展示您的表格架构(使用信息编辑您的问题)?为了提供答案,我需要知道所涉及的表名和列名。
  • 我已经用这些细节更新了我的问题

标签: mysql string date select


【解决方案1】:

您需要将字符串日期转换为日期时间格式以进行比较,然后将当前日期时间与存储的值进行比较。

您还可以将它们转换为可排序的字符串以进行比较。类似于 "2017-05-17 10:20:10 AM",但使用 datetime 类型比较容易。

参考:

MySQL 查询:

SELECT 
    `user_id`,
    `last_login`,
    (STR_TO_DATE(`lastlogin`,'%D %b %Y %h:%i:%s %p') >= (NOW() - (INTERVAL 30 MINUTE))) as `in_range`
FROM `login_last`
WHERE (STR_TO_DATE(`lastlogin`,'%D %b %Y %h:%i:%s %p') >= (NOW() - (INTERVAL 30 MINUTE)))

【讨论】:

  • 为什么投反对票?如果您要投反对票,至少要提供一个理由,以便该人可以改进他们的答案。
  • 这工作..谢谢你!必须将 last_login 更改为 lastlogin...再次感谢您的支持!
  • 很高兴它成功了,不客气!我还用正确的列名更新了答案
  • @SloanThrasher 我认为有人对这里的所有答案投了反对票:P。我不知道 STR_TO_DATE,所以我很乐意为你留下 +1 :)。
【解决方案2】:
SELECT * FROM tablename WHERE lastlogin >= DATE_SUB(NOW(), INTERVAL 30 MINUTE);

挑战是将DATE_SUB(NOW(), INTERVAL 30 MINUTE) 的结果转换为正确的格式'17th May 2017 09:40:43 AM'(或将左侧条件别名格式化为您的lastLogin 为UNIX_TIMESTAMP / datetime)。如果您自己插入日期值,您可能已经知道如何获取该格式并可以自己完成。否则,我建议您创建一个关于将 UNIX_TIMESTAMP 格式化为所需格式的新问题。

没有机会在我身上尝试的盲目猜测是:

SELECT * FROM tablename
WHERE UNIX_TIMESTAMP(lastlogin) >= DATE_SUB(NOW(), INTERVAL 30 MINUTE);

【讨论】:

  • 使用该格式无法正确比较,因为它是一个字符串,并且该格式无法正确比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
相关资源
最近更新 更多