一题六解,解法收录

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

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

收集一下这题的各种解法

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

用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
全部评论
select * from Orders where substring(order_date,1,7)='2020-01' order by order_date
8 回复 分享
发布于 2022-05-27 14:53
太强了
2 回复 分享
发布于 2022-06-12 12:11
select order_num, order_date from Orders where order_date between '2020-01-01 00:00:00' and '2020-01-31 23:59:59' order by order_date
2 回复 分享
发布于 2022-11-10 20:58 广东
牛逼老哥
点赞 回复 分享
发布于 2022-06-19 10:05
拉必稀
点赞 回复 分享
发布于 2022-08-23 00:00 北京
牛哇 大哥
点赞 回复 分享
发布于 2022-09-03 02:07 湖北
select order_num, order_date from Orders where extract(year from order_date)=2020 and extract(month from order_date)=1 order by order_date;
点赞 回复 分享
发布于 2022-09-08 18:26 广东
大佬哪个方法效率高
点赞 回复 分享
发布于 2022-09-13 20:09 安徽
N大逼
点赞 回复 分享
发布于 2022-12-15 16:55 福建
日期类型为什么可以用字符串的函数?
点赞 回复 分享
发布于 2023-02-28 20:48 陕西
我爱like~
点赞 回复 分享
发布于 2023-03-06 17:31 北京
这个赞必须给
点赞 回复 分享
发布于 2023-06-01 22:02 上海
最后一种解法最好
点赞 回复 分享
发布于 2023-09-23 12:14 陕西

相关推荐

评论
867
109
分享

创作者周榜

更多
牛客网
牛客企业服务