mysql常用函数
时间处理函数
时间格式化函数为字符串
1
date_format(datetime,'%Y-%m-%d %H:%i:%s.%f')
示例:
1
2mysql>select date_format(now(3),'%Y-%m-%d %H:%i:%s.%f')
2023-11-10 10:23:19.388000说明:
%Y-%m-%d %H:%i:%s.%f
翻译一下就是年-月-日 时:分:秒.微妙
。这里最后三位是000,是因为
date_format
的格式化函数中只有6位小数位。更多:
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-type-syntax.html
时间类型转为秒数函数
1
TIME_TO_SEC(dateTime)
示例:
1
2mysql>select TIME_TO_SEC('01:00:00')
3600说明:
将1小时转为秒数。支持默认格式的时间字符串,也支持时间类型(time)。
开窗函数
LAG函数
1
LAG (expression, n, default_value) OVER (PARTITION BY partition_expression ORDER BY sort_expression)
示例:
1
2mysql>select LAG(END_DATE) OVER (ORDER BY id) AS previous_endDate , END_DATE from WORK_INSTANCES ORDER BY id WINDOW w AS (ORDER BY t);
|2023-01-02 02:01:01 | 2023-01-02 02:07:52 |说明:
lag函数用于获取查询列表的上一行中的字段数据,上面的示例就是用于获取上一行的结束时间。可用于比较行之间的数据,例如获取两行之间的时间差:
1
mysql> select TIME_TO_SEC(TIMEDIFF(CREATION_DATE,LAG(CREATION_DATE) OVER (ORDER BY id)))/60 from WORK_INSTANCES ORDER BY id;
partition_expression:分组的字段
sort_expression: 排序字段
更多参考:
https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_lag
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿尔忒弥斯的笔记!
评论