sql select语句包含计算

时间:2017-07-24 01:38:29

标签: mysql sql

我想选择所有具有特定状态的卡车以及created_at超过24小时的地方

这就是我试过的

SELECT * FROM tbl_trucks WHERE `truck_status` != 11

现在我被困在如何添加额外的where语句,以便我只获得从当前时间过去24小时的卡车。从字面上看,这将是

 SELECT * FROM tbl_trucks WHERE `truck_status` != 11
      ANDWHERE ('created_at'-NOW() <0 ) //created_at passes 24 hours

在通常的php中,这将转换为

 $created_at= 1500373706; // created_At value in mysql db

if ((time() - $created_at) > 86400) { //past 24 hours mark
     //past 24 hours i need these
  } else {
     //not past 24 hours i dont need them
 }

2 个答案:

答案 0 :(得分:1)

类似于:

SELECT t.*
FROM tbl_trucks t
WHERE t.truck_status <> 11 AND
      t.created_at < DATE_SUB(NOW(), INTERVAL 24 HOUR);

答案 1 :(得分:1)

您可以尝试使用以下查询查找状态不是11且在最后一天创建的所有记录:

SELECT t.*
FROM tbl_trucks t
WHERE t.truck_status <> 11 AND
      t.created_at < NOW() - INTERVAL 1 DAY