广告
返回顶部
首页 > 资讯 > 数据库 >mysql中怎么实现时间相减功能
  • 877
分享到

mysql中怎么实现时间相减功能

2024-04-02 19:04:59 877人浏览 安东尼
摘要

这篇文章给大家介绍Mysql中怎么实现时间相减功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  先看一下错误的现象如下,第1条正确,第2,3条的t2-t1不正确:  [sql]  

这篇文章给大家介绍Mysql中怎么实现时间相减功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。


  先看一下错误的现象如下,第1条正确,第2,3条的t2-t1不正确:
  [sql]
  mysql> select t1,t2,t2-t1 from mytest;
  +---------------------+---------------------+-------+
  | t1                  | t2                  | t2-t1 |
  +---------------------+---------------------+-------+
  | 2013-04-21 16:59:33 | 2013-04-21 16:59:43 |    10 |
  | 2013-04-21 16:59:33 | 2013-04-21 17:00:33 |  4100 |
  | 2013-04-21 16:59:33 | 2013-04-21 17:59:35 | 10002 |
  +---------------------+---------------------+-------+
  3 rows in set
  全部测试脚本如下:
  [sql]
  --创建表
  mysql> CREATE TABLE mytest (
  t1 datetime,
  t2 datetime
  );
  Query OK, 0 rows affected
  --插入测试记录
  mysql> insert into mytest(t1,t2) values('2013-04-21 16:59:33','2013-04-21 16:59:43');
  Query OK, 1 row affected
  mysql> insert into mytest(t1,t2) values('2013-04-21 16:59:33','2013-04-21 17:00:33');
  Query OK, 1 row affected
  mysql> insert into mytest(t1,t2) values('2013-04-21 16:59:33','2013-04-21 17:59:35');
  Query OK, 1 row affected
  --验证结果
  mysql> select t1,t2,t2-t1 from mytest;
  +---------------------+---------------------+-------+
  | t1                  | t2                  | t2-t1 |
  +---------------------+---------------------+-------+
  | 2013-04-21 16:59:33 | 2013-04-21 16:59:43 |    10 |
  | 2013-04-21 16:59:33 | 2013-04-21 17:00:33 |  4100 |
  | 2013-04-21 16:59:33 | 2013-04-21 17:59:35 | 10002 |
  +---------------------+---------------------+-------+
  3 rows in set
  实际是mysql的时间相减是做了一个隐式转换操作,将时间转换为整数,但并不是用unix_timestamp转换,而是直接把年月日时分秒 拼起来,如2013-04-21 16:59:33 直接转换为20130421165933,由于时间不是十进制,所以最后得到的结果没有意义,这也是导致上面出现坑爹的结果。
  [sql]
  mysql> select t1,
  t2,
  convert(t1, UNSIGNED INTEGER) ct1,
  convert(t2, UNSIGNED INTEGER) ct2,
  t2-t1,
  convert(t2, UNSIGNED INTEGER) -convert(t1, UNSIGNED INTEGER) diff0
  from mytest;
  +-------------------+-------------------+--------------+--------------+-----+-----+
  |t1                 |t2                 |ct1           |ct2           |t2-t1|diff0|
  +-------------------+-------------------+--------------+--------------+-----+-----+
  |2013-04-21 16:59:33|2013-04-21 16:59:43|20130421165933|20130421165943|   10|   10|
  |2013-04-21 16:59:33|2013-04-21 17:00:33|20130421165933|20130421170033| 4100| 4100|
  |2013-04-21 16:59:33|2013-04-21 17:59:35|20130421165933|20130421175935|10002|10002|
  +-------------------+-------------------+--------------+--------------+-----+-----+
  3 rows in set
  要得到正确的时间相减秒值,有以下3种方法:
  1、time_to_sec(timediff(t2, t1)),
  2、timestampdiff(second, t1, t2),
  3、unix_timestamp(t2) -unix_timestamp(t1)
  [sql]
  --测试脚本
  mysql> select t1,
  t2,
  t2-t1,
  time_to_sec(timediff(t2, t1)) diff1,
  timestampdiff(second, t1, t2) diff2,
  unix_timestamp(t2) -unix_timestamp(t1) diff3
  from mytest;
  +---------------------+---------------------+-------+-------+-------+-------+
  | t1                  | t2                  | t2-t1 | diff1 | diff2 | diff3 |
  +---------------------+---------------------+-------+-------+-------+-------+
  | 2013-04-21 16:59:33 | 2013-04-21 16:59:43 |    10 |    10 |    10 |    10 |
  | 2013-04-21 16:59:33 | 2013-04-21 17:00:33 |  4100 |    60 |    60 |    60 |
  | 2013-04-21 16:59:33 | 2013-04-21 17:59:35 | 10002 |  3602 |  3602 |  3602 |
  +---------------------+---------------------+-------+-------+-------+-------+
  3 rows in set
  这个问题2003年就有人在mysql4.0的版本时反馈,但mysql官方并不认为是bug,因为他们认为mysql并不支持时间直接相减操作,应该用专用函数处理,所以一直没有修正。但我认为这个很容易导致使用错误,要么就直接报错,要么显示正确的结果。

关于mysql中怎么实现时间相减功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: mysql中怎么实现时间相减功能

本文链接: https://www.lsjlt.com/news/58172.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql中怎么实现时间相减功能
    这篇文章给大家介绍mysql中怎么实现时间相减功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  先看一下错误的现象如下,第1条正确,第2,3条的t2-t1不正确:  [sql]  ...
    99+
    2022-10-18
  • Vue怎么实现时间轴功能
    这篇文章主要介绍了Vue怎么实现时间轴功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么实现时间轴功能文章都会有所收获,下面我们一起来看看吧。<template>  &...
    99+
    2023-06-29
  • SQL Server中怎么实现时间戳功能
    SQL Server中怎么实现时间戳功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.基本概念时间戳:数据库中自动生成的唯...
    99+
    2022-10-18
  • vue怎么实现时间倒计时功能
    本篇内容介绍了“vue怎么实现时间倒计时功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求:做一个剩余支付时间倒计时的效果效果图:代码:...
    99+
    2023-06-20
  • python加减日期功能怎么实现
    Python中可以使用`datetime`模块来实现日期的加减功能。具体步骤如下:1. 导入`datetime`模块```pytho...
    99+
    2023-09-23
    python
  • php相册功能怎么实现
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php相册功能怎么实现相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分:一、相册首页<html> <head> ...
    99+
    2022-02-28
    php 相册功能
  • mysql中怎么实现时间进位?
    mysql更新到5.6.4 之后 , 新增了一个叫factional seconds的特性 , 可以记录时间的毫秒值。但是目前的数据库是不记录毫秒值的 , 所以会产生一个java中时间的Millisecon...
    99+
    2022-10-18
  • PHP日期函数实现时间相关功能的方法总结
    PHP日期函数是PHP语言中的一个重要特性,可以实现各种时间相关的功能。在本篇文章中,将总结一些常用的PHP日期函数的用法,帮助读者更好地理解和使用它们。一、获取当前时间PHP日期函数中最常用的一个函数就是date()函数,可以获取当前的日...
    99+
    2023-11-20
    格式化日期 比如获取当前日期 计算日期之间的差距等。 获取指定日期的时间戳
  • redux应用加减求和功能怎么实现
    本篇内容介绍了“redux应用加减求和功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1.去...
    99+
    2022-10-19
  • 怎么使用Vue实现数字加减功能
    这篇文章主要介绍“怎么使用Vue实现数字加减功能”,在日常操作中,相信很多人在怎么使用Vue实现数字加减功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Vue实现数字加减功能”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • Redis实现排行榜及相同积分按时间排序功能的实现
    目录不考虑积分相同积分相同按时间排序,排名唯一设计1设计2积分相同按时间排序,并列排名在日常的开发中,经常会碰到需要对用户的分值等进行排序,比如在游戏里面需要对战斗力进行排行,在组队活动中需要对各个队伍的贡献值进行排行,...
    99+
    2022-08-22
    Redis排行榜按时间排序 Redis时间排序 Redis相同积分按时间排序 Redis排行榜
  • linux中怎么利用ntp命令实现时间同步功能
    这篇文章给大家介绍linux中怎么利用ntp命令实现时间同步功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。如果服务器的时间出现混乱,将导致很多意想不到的问题。使用NTP,可以使服务器获取正确的时间,从而避免出现问题...
    99+
    2023-06-13
  • 怎么在PHP中实现字符串转时间戳的功能
    这篇文章主要讲解了“怎么在PHP中实现字符串转时间戳的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在PHP中实现字符串转时间戳的功能”吧!一、PHP 中时间戳的概念在 PHP 中,...
    99+
    2023-07-05
  • Java实现的时间戳与date对象相互转换功能示例
    本文实例讲述了Java实现的时间戳与date对象相互转换功能。分享给大家供大家参考,具体如下:一.日期转换为时间戳public long getTimestamp() throws ParseException{ Date date1 = ...
    99+
    2023-05-31
    java 时间戳 date对象
  • mysql 中怎么实现时间处理操作
    这篇文章将为大家详细讲解有关mysql 中怎么实现时间处理操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.存储日期时间用now(); &nb...
    99+
    2022-10-18
  • 怎么使用vue代码实现num加减功能
    本文小编为大家详细介绍“怎么使用vue代码实现num加减功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用vue代码实现num加减功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。代码如下:<!D...
    99+
    2023-07-04
  • 怎么在mysql中实现sequence功能
    这篇文章将为大家详细讲解有关怎么在mysql中实现sequence功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。mysql实现sequence功能1.建...
    99+
    2022-10-18
  • JS中的计时功能怎么实现
    在JavaScript中,可以使用`setTimeout()`和`setInterval()`两个函数来实现计时功能。1. 使用`s...
    99+
    2023-09-26
    JS
  • VBScript中怎么实现倒计时功能
    这篇文章给大家介绍VBScript中怎么实现倒计时功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。---- 要实现倒计时,主要用到的是一个时间函数: DateDIFF(),它的作用是求出两个日期之间的时间间隔。它的格...
    99+
    2023-06-03
  • Android应用中怎么实现一个照相功能
    本篇文章为大家展示了Android应用中怎么实现一个照相功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android 照相在android中,照相功能系统已经提供,在app中可以直接使用。当手机...
    99+
    2023-05-31
    android roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作