本帖最后由 喝酸奶不舔盖 于 2024-6-13 15:59 编辑
时间序列数据是一种重要的结构化数据形式,在多个时间点观察或测量到的任何事物都可以形成一段时间序列。时间序列可以是固定频率的,也可以是不定期的。 时间序列数据的意义取决于具体的应用场景,本节使用SQL语句,讲解日期格式数据的应用,包含返回当前时间、时间偏移、时间作差内容。 本文使用工具:MySQL 8.0、Navicat Premium
本文包含的内容:返回当前时间、时间偏移、时间作差
适用范围:使用SQL语句处理日期类型数据 一、返回当前时间 在SQL中,返回当前时间与EXCEL中有很多相似之处,比如返回年月日,当前周,当前是星期几,只要类比学习即可,select在此处用于执行运算,as后面跟一个别名。 1.1 返回当前的年月日 select current_date()
使用Navicat Premium 12数据库管理工具连接MySQL,新建查询,在查询区域写SQL语句进行数据查询。
![](https://pic3.zhimg.com/80/v2-bdee399dd3206c0035b67028db756746_720w.webp)
1.2 返回当前的时间(到秒) select current_timestamp as '当前时间';
![](https://pic3.zhimg.com/80/v2-6f7e32a88f3002e6ef6f8b7a0733fbaa_720w.webp)
1.3 返回日期中的年月日 SELECT date_format(current_timestamp,'%Y-%m-%d') as '日期';
![](https://pic4.zhimg.com/80/v2-d6ede8f8430b3ffed57335dfa2a6d63f_720w.webp)
这里使用date_format设置自定义格式,'%Y-%m-%d'用来返回年月日。
1.4 返回日期中的年(year) select year('2021-06-14 20:36:04') as year;
![](https://pic2.zhimg.com/80/v2-07b74ded9017eb301589e1f324dc3c19_720w.webp)
1.5 返回日期中的月(month) select month('2021-06-14 20:36:04') as month;
![](https://pic2.zhimg.com/80/v2-2e773796598b8998a9441951bb251739_720w.webp)
1.6 返回日期中的日(day) select day('2021-06-14 20:36:04') as day;
![](https://pic3.zhimg.com/80/v2-b93473756c94a1fb985976c7f86f701a_720w.webp)
1.7 返回日期中的时(hour) select hour('2021-06-14 20:36:04') as hour;
![](https://pic3.zhimg.com/80/v2-207872dd9e15bf435a2a59063d35aaca_720w.webp)
1.8 返回日期中的分(minute) select minute('2021-06-14 20:36:04') as minute;
![](https://pic2.zhimg.com/80/v2-5df0232ae04a49bb9556d2fa9bdfa0f1_720w.webp)
1.9 返回日期中的秒(second) select second('2021-06-14 20:36:04') as second;
![](https://pic1.zhimg.com/80/v2-114e1ee7df329c8adfe067d0c6116f94_720w.webp) 二、时间偏移 2.1 返回开始月份增加month后的日期 SELECT PERIOD_ADD(202106,3) as '增加月';
![](https://pic3.zhimg.com/80/v2-16db9f8cc798766e3a36786648377312_720w.webp)
月份的偏移使用PERIOD_ADD函数,后面缀加偏移的月数即可。
2.2 返回开始月份减少month后的日期 SELECT PERIOD_ADD(202106,-3) as '减少月';
![](https://pic4.zhimg.com/80/v2-8c29a21d05d3cf0caf586e3f087cb2bb_720w.webp)
2.3 返回开始日期增加days天后的日期 select ADDDATE('2021-06-14',7) as '增加7天';
![](https://pic2.zhimg.com/80/v2-e3815a077f8f39bfeb5d33a13653d27d_720w.webp)
天数的偏移使用ADDDATE函数,后面缀加偏移的天数即可。
2.4 返回开始日期减去days后的日期 select ADDDATE('2021-06-14',-7) as '减少7天';
![](https://pic1.zhimg.com/80/v2-a7f45a977fc29874b3a9b07ce5582458_720w.webp)
2.5 返回当月第1天 select DATE_ADD(curdate(),interval -day(curdate())+1 day) as '本月第一天';
![](https://pic3.zhimg.com/80/v2-0f113d3479eee48f8de7ec72cd41de36_720w.webp)
2.6 返回当年的第一天 select DATE_SUB(curdate(),interval dayofyear(now())-1 day) as '当年第一天';
![](https://pic2.zhimg.com/80/v2-75325e32a3662cc21c35b05e102f9131_720w.webp)
2.7 返回日期在当前的周数 select WEEKOFYEAR('2021-06-14') as '当前周'
![](https://pic1.zhimg.com/80/v2-6dcf50416c53e753679cd44f8ff3ab40_720w.webp)
返回当前周用WEEKOFYEAR函数。
2.8 返回日期在当前的星期数 SELECT WEEKDAY("2021-06-14") as '星期';
![](https://pic1.zhimg.com/80/v2-3acfe7937d3b73b2d7a3dbb53dac2430_720w.webp)
返回当前是星期几用WEEKDAY函数,如果返回结果为0 表示当前是星期一,返回结果为1 表示当前是星期二。
三、时间作差 3.1 返回结束日期减去开始日期的天数 select datediff('2021-06-14','2021-01-01') as '间隔天数';
![](https://pic1.zhimg.com/80/v2-76b4a971488c57c384758409c1b8d2c8_720w.webp)
返回结束日期减去开始日期的结果,这里使用datediff函数,与在EXCEL中的用法一致,结束日期放前面。 select unix_timestamp('2021-06-14 21:52:12')-unix_timestamp('2021-06-14 20:33:33') as '间隔时间';
![](https://pic4.zhimg.com/80/v2-fbef7e5a7e4e101d13a0bcc1e0adc99f_720w.webp)
返回时间戳的间隔使用到unix_timestamp函数,作差即可。
文章源自:大话数据分析
|