题解 | 82:返回2020年1月的所有订单号和订单日期

返回 2020 年 1 月的所有订单的订单号和订单日期

https://www.nowcoder.com/practice/c7734db33854477aa94ae238a3390435

select order_num, order_date from Orders
where year(order_date) = '2020' and month(order_date) = '1'
order by order_date ASC

通过这一道题,总结一下匹配类型题目的解法以及字符串操作的相关函数:

字符串操作的函数:

  1. 文本切割:substring_index(字段,'分割方式',n)。n代表第几段
  2. 文本截取:substring(字段,起始点,终点)
  3. 文本替换:replace(字段,‘被替换的部分’,'替换后的结果')
  4. 文本删除:trim('被删除字段' from 列名)
  5. 文本拼接:concat(字符串1,字符串2,字符串3,......)
  6. 文本大写:upper(字符串)
  7. 文本小写:lower(字符串)
  8. 关键字匹配: 类似的->like "%关键字%";不类似的-> not like "%关键字%"

字符串匹配(近似查找法)

用like来查找

select order_num, order_date 
from Orders
where order_date like '2020-01%'
order by order_date

切割字符串

select order_num, order_date
from Orders
where left(order_date, 7) = '2020-01'
order by order_date

字符串比较

select *
from Orders
where order_date >= '2020-01-01 00:00:00'and order_date <= '2020-01-31 23:59:59'
order by order_date;

用正则来查找(效率不如like,能用like就用like)

select order_num, order_date
from Orders
where order_date regexp '2020-01'
order by order_date

时间函数匹配

select order_num, order_date
from Orders
where year(order_date) = '2020'and month(order_date) = '1'
order by order_date

利用date_format函数 (参考其中的匹配规则进行匹配)

select order_num, order_date
from Orders
where date_format(order_date, '%Y-%m')='2020-01'
order by order_date

全部评论

相关推荐

03-25 19:00
东北大学 Java
程序员牛肉:太好了,是聊天记录。不得不信了。 当个乐子看就好,不要散播焦虑
点赞 评论 收藏
分享
04-18 00:32
已编辑
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务