当前位置: 首页 > news >正文

【golang】mysql默认排序无法实现 使用golang实现对时间字符串字段的排序

一、问题场景

1、mysql实现排序-性能低下

例如:某字段 finish_time 数据如下:6:13:2710:56:1121:56:11
会出现顺序如下的场景: 10:56:1121:56:116:13:27

二、解决方案

2、golang实现排序

package mainimport ("fmt""sort""strconv""strings"
)// 提取小时、分钟和秒部分的函数
func extractHourMinuteSecond(timeStr string) int {parts := strings.Split(timeStr, ":")if len(parts) >= 3 {hour, _ := strconv.Atoi(parts[0])minute, _ := strconv.Atoi(parts[1])second, _ := strconv.Atoi(parts[2])return hour*3600 + minute*60 + second}return 0
}func main() {// 示例数据,包含两个时间字符串time1 := "6:13:27"time2 := "10:56:11"time3 := "21:56:11"// 将示例数据放入切片中times := []string{time1, time2, time3}// 自定义排序逻辑sort.Slice(times, func(i, j int) bool {// 提取小时、分钟和秒部分timeI := extractHourMinuteSecond(times[i])timeJ := extractHourMinuteSecond(times[j])// 比较时间值return timeI < timeJ})// 输出排序后的结果for _, t := range times {fmt.Println(t)}
}

输出结果:
6:13:27
10:56:11
21:56:11

http://www.lryc.cn/news/206605.html

相关文章:

  • C语言学习笔记总结(一)
  • WPF:自定义按钮模板
  • Spring Boot集成Swagger接口分类与各元素排序问题
  • 盘点国产ChatGPT十大模型
  • 【C++杂货铺】C++11特性总结:列表初始化 | 声明 | STL的升级
  • doris的be其中失败的原因
  • LeetCode 面试题 16.04. 井字游戏
  • Nodejs和Node-red的关系
  • Spring Boot整合OAuth2实现GitHub第三方登录
  • Android [SPI,AutoSerivce,ServiceLoader]
  • 【Linux】ASCII码表-256个
  • node.js - 上传文件至阿里云oss
  • xxl-job项目集成实战,全自动项目集成,可以直接使用到项目中
  • Qt生成PDF报告
  • Jenkins 安装全攻略:从入门到精通
  • 迎重阳,话养老:平安养老险如何助力国民“养老梦”?
  • 微信小程序获取用户信息
  • Mysql 索引原理和优化方式
  • Ubuntu安装VM TOOLS解决虚拟机无法和WINDOWS粘贴复制问题
  • 【Docker】Docker Swarm介绍与环境搭建
  • 国产CAN总线收发芯片DP1042 兼容替换TJA1042
  • [架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构
  • 【接口技术】定时计数器习题
  • DC电源模块的的散热结构合理布局
  • Fedora Linux 38下安装音频与视频的解码器和播放器
  • 边缘计算:云计算的延伸
  • 【经验分享】在Kylin桌面版操作系统中配置openGauss的ODBC数据源
  • WSL——ubuntu中anaconda换源(conda、pip)
  • IP地址在网络安全中的关键作用
  • Android.mk 中覆盖应用包名