【发布时间】:2019-11-14 13:09:35
【问题描述】:
表:items_ordered
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
我有这样的问题 "选择 12 月份购买的所有订购商品的平均价格?"
这是针对 MYSQL 的,我已经尝试使用 SQL LIKE 运算符来解决它。
select avg ( price)
from items_ordered
where order_date like ('%Dec%')
但是,我正在考虑使用 date_format 解决此问题的另一种方法:
select avg ( price)
from items_ordered
where date_format ( order_date, %M) = 'Dec'
我的问题是我们什么时候应该在 SQL 中使用 date_format 函数?对于这个问题,哪一个解决得更快?
【问题讨论】:
-
使用适当的数据类型会更快;
LIKE和DATE_FORMAT()都消除了利用索引或使用任何基于日期的内置功能的可能性。