0

我在数据库中有一个表,名为timedate时间的列存储在此列中,如下所示:2013-05-25 12:15:25

我只需要SELECT最后 15 分钟内的时间行;所以在上面的情况下

SELECT 如果时间日期在之后2013-05-25 12:00:25

我试过了:

TO_DAYS(NOW()) - TO_DAYS('timedate') < 15

但它没有用

SELECT 
    * 
  FROM 
    `column` 
  WHERE 
    `name` = 'name' 
    AND `family` = 'family'  
    AND (
      `test1` = 'test1 value' 
      || `test2` = 'test2 value' 
      || `test3` = 'test3 value' 
    ) 
    AND TO_DAYS(NOW()) - TO_DAYS('timedate') < 15 
  LIMIT 
    1
4

5 回答 5

1
SELECT * FROM `column` 
WHERE `name` = {$name} 
AND `family` = {$family}  
AND (`test1` = {$test1} || `test2` = {$test2} || `test3` = {$test3}) 
AND `timedate` > NOW() - INTERVAL 15 MINUTE

重要提示:请注意,我'用反引号替换了您的大约时间日期。MySQL 认为它'是一个字符串,而不是列名。

于 2013-07-21T12:29:18.520 回答
1

如果字段类型和是数字test1,那么您的查询应该是:test2test3

SELECT 
  * 
FROM
  `column` 
WHERE `name` = '{$name}' 
  AND `family` = '{$family}'
  AND (
    `test1` = {$test1} || `test2` = {$test2} || `test3` = {$test3}
  ) 
  AND ADDTIME(`timedate`, '00:15:00.000000') > NOW()

如果字段类型是 varchar test1,您test2test3查询应该是:

SELECT 
  * 
FROM
  `column` 
WHERE `name` = '{$name}' 
  AND `family` = '{$family}'
  AND (
    `test1` = '{$test1}' || `test2` = '{$test2}' || `test3` = '{$test3}'
  ) 
  AND ADDTIME(`timedate`, '00:15:00.000000') > NOW()

希望这会有所帮助。

于 2013-07-21T12:45:37.870 回答
0

请参阅此页面

您可以使用DATE_SUB(CURDATE(), INTERVAL 15:00 MINUTE_SECOND)获取 15 分钟前的时间,然后与>运算符比较日期。

于 2013-07-21T12:24:43.723 回答
0

尝试TIMESTAMPDIFF (MINUTE, NOW(), timestamp)

请参阅MySQL 手册

于 2013-07-21T12:25:40.503 回答
0

尝试这样的事情

SELECT TIMEDIFF(NOW(),`timedate`) < 15 FROM ......
于 2013-07-21T12:26:32.143 回答