MYSQL - 日期/时间显示最近 30 分钟

标签 mysql string date select

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

创建图章的 php 函数:

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

如何执行选择查询来显示当前时间过去 30 分钟内的(上次登录)?

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

任何帮助都会很棒。

更新:

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

  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)    

最佳答案

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

您还可以将它们转换为可排序的字符串以进行比较。类似“2017-05-17 10:20:10 AM”,但使用日期时间类型更容易进行比较。

引用:

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)))

关于MYSQL - 日期/时间显示最近 30 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023521/

相关文章:

mysql - 通过查找最大值来填充列

python - Python 是否具有用于取消缩进多行字符串的内置函数?

php - 数据库活在过去?

当日为 31 且下个月没有时,javascript 日期 setMonth 失败

mysql - AWS,尝试与 RDS 建立连接时的错误消息含义

mysql - 使用公共(public)字段将记录从一个表追加到另一个表

php - Codeigniter 预订模块

c++ - 将 char* 复制到指定位置的 std::string 不分配新对象

java - 如何将字符串输入数组直到输入字符串匹配条件?

python - pandas to_json - 以天而不是秒为单位返回时间戳