MySQL date_format()函数与SQL Like运算符

时间:2019-07-03 19:43:08

标签: mysql sql

表:items_ordered

from mts_functional import some_function

我有这样的问题 “选择12月份购买的所有订购商品的平均价格吗?”

这是针对MYSQL的,我已经尝试使用SQL LIKE运算符解决它。

customerid  order_date  item    quantity    price
10330   30-Jun-1999 Pogo stick  1   28.00
10101   30-Jun-1999 Raft    1   58.00
10298   01-Jul-1999 Skateboard  1   33.00
10101   01-Jul-1999 Life Vest   4   125.00
10299   06-Jul-1999 Parachute   1   1250.00
10339   27-Jul-1999 Umbrella    1   4.50

但是,我正在考虑使用date_format解决此问题的另一种方法:

select avg ( price)
from items_ordered
where order_date like ('%Dec%')

我的问题是,何时应该在SQL中使用date_format函数?有了这个问题,哪一个解决得更快?

1 个答案:

答案 0 :(得分:5)

请勿为日期使用LIKE LIKE字符串的运算符,日期不是 strings 。 MySQL有很多内置函数可以满足您的需求。

如果要获取所有十二月的数据,请使用month()

where month(order_date) = 12

如果要获取一个12月的数据,请使用日期比较:

where order_date >= '2018-12-01' and order_date < '2019-01-01'

尤其是在日期范围内,直接比较可以利用索引。