今天遇到个需求,统计充电的订单,充电时长,懒得用Java了,直接就在数据库函数搞起来,结果放到线上运行后发现很多充电时长为负数的订单,才发现这个问题。

首先是STR_TO_DATE

这个函数是吧varchar格式的时间转成时间格式,

STR_TO_DATE(begin_charge_time,'%Y-%m-%d %H:%i:%s')

这样就成时间格式了

然后TIME_TO_SEC

返回 time 参数,转换成秒。可以直接在mysql执行

SELECT TIME_TO_SEC('22:23:00'); 结果为 80580

我的写法是

 (TIME_TO_SEC (STR_TO_DATE(end_charge_time,'%Y-%m-%d %H:%i:%s')) -TIME_TO_SEC (STR_TO_DATE(begin_charge_time,'%Y-%m-%d %H:%i:%s'))) EquipmentChargeTime

一般都没问题,可我有个订单时间是end_time:2017-05-10 00:35:28,begin_time:2017-05-09 23:28:11

SELECT TIME_TO_SEC('2017-05-10 00:35:28'); 输出为 2128
SELECT TIME_TO_SEC('2017-05-09 23:28:11'); 输出为 84491

相减就是负数了。

原来 TIME_TO_SEC 是把 时分秒转为 秒,并不会对年月日进行处理

UNIX_TIMESTAMP这个函数返回的是自1970年以来的秒数,所以时间计算用这个是靠谱的。
正确使用方式

 (UNIX_TIMESTAMP(STR_TO_DATE(end_charge_time,'%Y-%m-%d %H:%i:%s')) -UNIX_TIMESTAMP(STR_TO_DATE(begin_charge_time,'%Y-%m-%d %H:%i:%s'))) EquipmentChargeTime

MYSQL—— TIME_TO_SEC函数与UNIX_TIMESTAMP函数区别相关推荐

  1. mysql中from unixtime,mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

    摘要 腾兴网为您分享:mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别,作业大师,智慧大学,优化大师,先游等软件知识,以及流星蝴蝶剑,升学指导网软件,承德大宗,q ...

  2. mysql to unixtime_转 善用mysql中的FROM_UNIXTIME()函数和UNIX_TIMESTAMP()函数

    我们经常会面临要从数据库里判断时间,取出特定日期的查询.但是数据库里储存的都是unix时间戳,处理起来并不是特别友好.幸而MYSQL提供了几个处理时间戳的函数,可以帮助我们在查询的时候,就将时间戳格式 ...

  3. MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数

    FROM_UNIXTIME(unix_timestamp)是MySQL里的时间函数. UNIX_TIMESTAMP() 是与之相对正好相反的时间函数 . e.g. select unix_timest ...

  4. Mysql中FROM_UNIXTIME()和UNIX_TIMESTAMP()函数

    我们经常会面临要从数据库里判断时间,取出特定日期的查询.但是数据库里储存的都是unix时间戳,处理起来并不是特别友好.幸而MYSQL提供了几个处理时间戳的函数,可以帮助我们在查询的时候,就将时间戳格式 ...

  5. MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

    2019独角兽企业重金招聘Python工程师标准>>> Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00 ...

  6. FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

    [FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别] Unix时间戳(Unix timestamp),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00 ...

  7. mysql default unix_timestamp_mysql中的unix_timestamp函数

    偶然看到MySQL的一个函数 unix_timestamp(),不明就里,于是就试验了一番. unix_timestamp()函数的作用是返回一个确切的时间点的UNIX时间戳,这个Unix时间戳是一个 ...

  8. MySQL中的UNIX_TIMESTAMP函数使用总结

    转载自:http://www.cnblogs.com/hongfei/archive/2012/06/08/2541599.html MySQL中的UNIX_TIMESTAMP函数有两种类型供调用 1 ...

  9. 数据库系列之mysql 自定义函数function,函数和存储过程的区别

    mysql 自定义函数function,函数和存储过程的区别 https://blog.csdn.net/u010365819/article/details/80470448 https://blo ...

最新文章

  1. 在Ubuntu上安装Odoo 11(企业版)
  2. ubuntu时钟不显示的解决方法
  3. Lombok 的爱恨情仇
  4. C#基础-面向对象-多态
  5. partial equation lecture first order pde lecture 1
  6. 集群批量管理工具parallel ssh的安装及使用
  7. 推荐安装的Visual Studio Extensions
  8. JAVA当中Calendar类打印日历表单
  9. 今天高考,讲几句大实话
  10. python有几种容器_Python中几种内置的容器(Containers)类型:列表、字典、集合和元组的比较和该注意的点...
  11. 获取相对于父元素的位置
  12. 配置spring boot 内置tomcat的accessLog日志
  13. LeetCode之两个数组的交集
  14. idea中tomcat不能发布html,idea中Tomcat无法启动成功
  15. Java实现抓取百度识图结果的实现和思路-1-创造百度识图的URL链接
  16. elementui 时间选择框选中后限制前后31天
  17. c++中struct构造函数
  18. 约当标准型_特征向量到约当标准型
  19. CodeForces 19E 仙女fairy
  20. R语言参数检验多重比较

热门文章

  1. 简单获取unix时间戳
  2. 如何让外网访问到内网FTP服务
  3. 一个股市老操盘手的突然感悟
  4. ecstore2.0数据库词典
  5. 程序员不得不知道的 API 接口常识
  6. Fabric学习笔记——一、环境搭建(小白入门)
  7. Linux操作系统中man命令的用法,Linux 系统中的MAN命令使用祥解
  8. PB中OpenSheet与open的区别
  9. Openxml读取和生成简单类型的Excel
  10. iOS后台运行任务的应用