【问题标题】:Select all sales from a certain date thats specified选择指定日期的所有销售
【发布时间】:2017-06-05 23:44:32
【问题描述】:

我有一张优惠券,想获取创建日期之后使用促销代码的所有行。

每次销售都有时间戳,创建的优惠券也有时间戳。我想选择优惠券日之后的所有销售。

这就是我所拥有的。

$coupon = $this->db->query("SELECT * FROM group_coupon WHERE code='test' AND active='1'");


if (count($coupon) > 0) {


  $amount = $this->db->query("SELECT * FROM group_coupon WHERE code='test'")->row()->amount;

  $quantity = $coupon->row()->quantity;
    echo "Quantity: " . $quantity;

echo "Time: " . $coupon->row()->timestamp;

// I know the query is wrong 
$time_st = $coupon->row()->timestamp;
   $all = $this->db->query("SELECT * FROM sale WHERE coupon='test' AND $time_st > timestamp")->row()->coupon;

// then id like to do a count($all) 

}

【问题讨论】:

  • 这段代码会发生什么?您使用的是 sql-server 还是 mysql?
  • mysql ---------
  • 好的,这段代码会发生什么?错误,不正确的结果,其他?
  • $time_st 是创建优惠券时创建的时间戳 -- 我需要在 $time_st 之后创建的所有销售,这是我无法弄清楚的

标签: php mysql codeigniter


【解决方案1】:

你犯了一点逻辑错误。

假设您正在查看的优惠券是在下午 1 点制作的,该时间由数字 100 表示(在本例中为 $time_st)。然后,在下午 2 点后一小时制作了另一张优惠券,以 200 (timestamp) 表示。然后检查$time_st > timestamp 是否为100 > 200,但事实并非如此。

您要做的是检查您正在检查的优惠券的时间戳是否小于其他时间戳,因此您知道它们是在未来制作的。

您的查询应该是:

$all = $this->db->query("SELECT * FROM sale WHERE coupon='test' AND $time_st < timestamp")->row()->coupon;

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    相关资源
    最近更新 更多