返回顶部
首页 > 资讯 > 数据库 >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://lsjlt.com/news/58172.html(转载时请注明来源链接)

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

猜你喜欢
  • mysql中怎么实现时间相减功能
    这篇文章给大家介绍mysql中怎么实现时间相减功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  先看一下错误的现象如下,第1条正确,第2,3条的t2-t1不正确:  [sql]  ...
    99+
    2024-04-02
  • php时间戳怎么相减
    今天小编给大家分享一下php时间戳怎么相减的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,我们需要了解PHP中如何获取时...
    99+
    2023-07-05
  • python时间序列数据相减的实现
    目录1.将读取的时间序列数据转化为timestamp格式2.时间数据的相减在此记录自己学习python数据分析过程中学到的一些数据处理的小技巧。本节主要分享时间数据的相减。 1.将读...
    99+
    2023-05-18
    python时间序列相减 python时间相减
  • SQL Server中怎么实现时间戳功能
    SQL Server中怎么实现时间戳功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.基本概念时间戳:数据库中自动生成的唯...
    99+
    2024-04-02
  • Vue怎么实现时间轴功能
    这篇文章主要介绍了Vue怎么实现时间轴功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么实现时间轴功能文章都会有所收获,下面我们一起来看看吧。<template>  &...
    99+
    2023-06-29
  • vue怎么实现时间倒计时功能
    本篇内容介绍了“vue怎么实现时间倒计时功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求:做一个剩余支付时间倒计时的效果效果图:代码:...
    99+
    2023-06-20
  • oracle当前时间减去指定时间怎么实现
    在Oracle数据库中,可以使用TO_DATE函数将指定时间字符串转换为日期类型,然后利用当前时间减去转换后的指定时间来计算时间差。...
    99+
    2024-04-09
    oracle
  • php怎么计算时间相减差距几天
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么计算时间相减差距几天实现思想:使用strtotime()函数将两个时间转为时间戳将两个时间戳相减,得到时间差将时间差除以一天的总秒数(24*60*60=864...
    99+
    2019-08-19
    php 时间差 相差几天
  • python加减日期功能怎么实现
    Python中可以使用`datetime`模块来实现日期的加减功能。具体步骤如下:1. 导入`datetime`模块```pytho...
    99+
    2023-09-23
    python
  • Vue.js实现时间轴功能
    本文实例为大家分享了Vue.js实现时间轴功能的具体代码,供大家参考,具体内容如下 GitHub 时间轴组件封装 Main.js <template> <...
    99+
    2024-04-02
  • Vue实现时间轴功能
    本文实例为大家分享了Vue实现时间轴功能的具体代码,供大家参考,具体内容如下 <template>   <div class="container">    ...
    99+
    2024-04-02
  • vue实现时间倒计时功能
    本文实例为大家分享了vue实现时间倒计时功能的具体代码,供大家参考,具体内容如下 需求: 做一个剩余支付时间倒计时的效果 效果图: 代码: <template> ...
    99+
    2024-04-02
  • Android实现时间倒计时功能
    本文实例为大家分享了Android实现时间倒计时功能展示的具体代码,供大家参考,具体内容如下效果展示MainActivity(主页面代码)public class MainActivity extends Activity { priva...
    99+
    2023-05-30
    android 倒计时 roi
  • 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+
    2024-04-02
  • redux应用加减求和功能怎么实现
    本篇内容介绍了“redux应用加减求和功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1.去...
    99+
    2024-04-02
  • 怎么使用Vue实现数字加减功能
    这篇文章主要介绍“怎么使用Vue实现数字加减功能”,在日常操作中,相信很多人在怎么使用Vue实现数字加减功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Vue实现数字加减功能”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • linux中怎么利用ntp命令实现时间同步功能
    这篇文章给大家介绍linux中怎么利用ntp命令实现时间同步功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。如果服务器的时间出现混乱,将导致很多意想不到的问题。使用NTP,可以使服务器获取正确的时间,从而避免出现问题...
    99+
    2023-06-13
  • 怎么在PHP中实现字符串转时间戳的功能
    这篇文章主要讲解了“怎么在PHP中实现字符串转时间戳的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在PHP中实现字符串转时间戳的功能”吧!一、PHP 中时间戳的概念在 PHP 中,...
    99+
    2023-07-05
  • JS中的计时功能怎么实现
    在JavaScript中,可以使用`setTimeout()`和`setInterval()`两个函数来实现计时功能。1. 使用`s...
    99+
    2023-09-26
    JS
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作