前提:表中有一个datetime类型的列名叫做time
如下表
id | time |
---|---|
1 | 2021-02-05 00:00:00 |
2 | 2021-02-06 00:00:00 |
下面直接上代码
//获取年
select year(time) as whatNameYouWant from yourTable
//获取月
select month(time) as whatNameYouWant from yourTable
//获取日
select day(time) as whatNameYouWant from yourTable
//获取时间
select time(time) as whatNameYouWant from yourTable
//获取年月日,这里用到substring方法对原来的时间进行一个裁剪
select substring(time,1,10) as whatNameYouWant from yourTable
获取年的结果
whatNameYouWant |
---|
2021 |
2021 |
在上面这个结果就出现了两个重复的‘2021’
为了解决这个问题,我们来看看下面这个表
id | time |
---|---|
1 | 2021-02-05 00:00:00 |
2 | 2021-02-06 00:00:00 |
3 | 2020-05-20 00:00:00 |
那么这样的数据我们通过添加distinct即可去掉重复年获取到一个年的列表
//获取不重复年的sql语句
select distinct year(time) as whatNameYouWant from yourTable
获取不重复年的结果
whatNameYouWant |
---|
2021 |
2020 |
年、月、日也同理