MySQL 如何使用INTERVAL()函数与表的列一起使用
在MySQL中,INTERVAL()函数可以用来对时间进行加减。它的语法如下:
INTERVAL expr unit
其中,expr
是一个数值表达式,unit
是一个时间单位。常见的时间单位有:
- MICROSECOND
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
下面我们来看一个简单的例子:
SELECT NOW(), INTERVAL 1 HOUR;
查询结果如下:
NOW() | INTERVAL 1 HOUR |
---|---|
2022-07-06 12:00:00 | 2022-07-06 13:00:00 |
我们可以发现,INTERVAL()函数将当前时间加上了1小时。
现在,假设我们有一张名为orders
的表,其中有一个order_time
列,表示订单的下单时间。我们想要查询出在过去24小时内下单的所有订单。怎么做呢?
我们可以使用如下的SQL语句:
SELECT *
FROM orders
WHERE order_time >= NOW() - INTERVAL 1 DAY;
这里,NOW()
函数获取的是当前时间,INTERVAL 1 DAY
表示过去一天,因此NOW() - INTERVAL 1 DAY
得到的是24小时前的时间。
我们还可以将INTERVAL()函数与其他列一起使用,如下面的例子所示:
SELECT order_id, order_time, order_amount,
IF(order_amount > 100, 'expensive', 'cheap') AS order_label
FROM orders
WHERE order_time >= NOW() - INTERVAL 1 DAY;
这里,我们使用了一个IF函数,根据订单金额的大小,将订单标记为expensive
或cheap
。注意到这里的NOW()
和INTERVAL()
函数与order_time
列一起使用,获取的是在过去24小时内下单的所有订单。
阅读更多:MySQL 教程
结论
在MySQL中,INTERVAL()函数可以用来对时间进行加减,可方便地查询指定时间段内的数据。同时,它还可以与表的其他列一起使用,让查询更加灵活多样。