使用sql计算之前的时间

2023-12-10

假设我有下表test它有列id, time, post这是它拥有的数据的样本。

-----------------------------------
   id           time        post
-----------------------------------     
    1   2018-06-17 16:12:30 post1
    2   2018-06-17 16:13:09 post2
    3   2017-06-15 16:12:30 post7
----------------------------------

我想仅使用打印出来SQL自每个帖子添加到数据库以来多少天、小时、分钟和秒前

好的,这是我的第一次尝试

SELECT
    id,
    time,
    NOW(),
    CONCAT (
    FLOOR(TIME_FORMAT(SEC_TO_TIME(NOW() - `time`), '%H') / 24),
    ' Days ',
    MOD (TIME_FORMAT(SEC_TO_TIME(NOW() - `time`), '%H'), 24),
    ' Hours ',
    TIME_FORMAT(SEC_TO_TIME(NOW() - `time`), '%i Minutes %s Seconds'),
    ' ago' 
    ) AS `ago` 
FROM
    `test`;

但它似乎没有给出正确的计算,例如上面示例的输出是

1   2018-06-17 16:12:30 2018-06-17 20:38:08 0 Days 11 Hours 49 Minutes 38 Seconds ago
2   2018-06-17 16:13:09 2018-06-17 20:38:08 0 Days 11 Hours 48 Minutes 19 Seconds ago
3   2017-06-15 16:12:30 2018-06-17 20:38:08 34 Days 22 Hours 59 Minutes 59 Seconds ago

如你所见,在id = 3然而差异应该不仅仅是34打印出来的天数

那么代码有什么问题吗? 〜谢谢你


你可以尝试这个查询。计算间隔TIMESTAMPDIFF and TIMESTAMPADD功能。

SELECT
    id,
    time,
    NOW(),
    CONCAT (
    TIMESTAMPDIFF(DAY,`time`, NOW()),' Days ',
    TIMESTAMPDIFF(HOUR, TIMESTAMPADD(DAY, TIMESTAMPDIFF(DAY, `time`, NOW()), `time`), NOW()),' Hours ',
    TIMESTAMPDIFF(MINUTE, TIMESTAMPADD(HOUR, TIMESTAMPDIFF(HOUR, `time`, NOW()), `time`), NOW()), ' Minutes ',
    TIMESTAMPDIFF(SECOND, TIMESTAMPADD(MINUTE, TIMESTAMPDIFF(MINUTE, `time`, NOW()), `time`), NOW()), ' Seconds '
    ' ago' ) AS `ago` 
FROM
    `test`;

sqlfiddle:http://sqlfiddle.com/#!9/5e8085/2

NOTE

例如,您想要获取间隔SECOND

让我们一步步来了解一下:

1.TIMESTAMPDIFF(MINUTE, time, NOW())获取间隔MINUTE之间time and NOW()

2.TIMESTAMPADD(MINUTE, TIMESTAMPDIFF(MINUTE, time, NOW()), time)追加间隔MINUTE to time,让他们只有间隔时间second.

3.计算秒间隔。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用sql计算之前的时间 的相关文章

  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 使用两个日期之间的随机日期时间更新每一行

    我有一个专栏叫date created我希望每一行保存一个随机日期 日期距当前时间为 2 天 我正在运行以下查询 但它会更新具有相同随机日期的所有行 我希望每一行都是随机的并且不相同 update table set date create
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • 如何将可视选择的文本通过管道传输到 UNIX 命令并将输出附加到 Vim 中的当前缓冲区

    使用 Vim 我尝试将在可视模式下选择的文本通过管道传输到 UNIX 命令 并将输出附加到当前文件的末尾 例如 假设我们有一个 SQL 命令 例如 SELECT FROM mytable 我想做如下的事情
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • MySQL Connector/C++ 库链接错误问题

    PROBLEM 好吧 我一直在尝试遵循 MySQL Forge Wiki 和其他一些网站上的示例代码 这些网站提供了有关如何获得简单数据库连接的教程 但由于某种原因 我的项目总是因链接错误而失败 我可以我自己不明白为什么或如何解决它 我仍在
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • 分层查询

    我希望我能够解释困扰我的问题 我有以下分层数据集 这只是 34K 记录的子集 PARENT ID CHILD ID EXAM TUDA12802 TUDA12982 N TUDA12982 TUDA12984 J TUDA12984 TUD
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • 插入触发器最终在分区表中插入重复行

    我有一个分区表 我认为 适当的INSERT触发器和一些限制 不知何故 INSERT语句为每个语句插入 2 行INSERT 一个用于父分区 一个用于相应的分区 设置简要如下 CREATE TABLE foo id SERIAL NOT NUL
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐

  • 致命错误:超出最大执行时间 400 秒

    我有一个 PHP 脚本 在执行长 mysq query 时失败 错误信息是 致命错误 超过了 400 秒的最大执行时间 我在 Windows 上使用 XAMPP 并且更改了 php ini 文件 我的安装中只有一个 将 max execut
  • XMLHttpRequest 无法加载 .... 预检响应具有无效的 HTTP 状态代码 401

    下面是我的服务调用 我正在尝试进行基本的身份验证 我检查了多个博客都找不到解决方案 任何人都可以帮我解决这个问题 因为我收到以下错误 XMLHttpRequest 无法加载 预检响应具有无效的 HTTP 状态代码 401 我也无法在开发人员
  • cURL 给出无法解析主机

    我在新的专用服务器上 但在curl 连接上遇到错误 我试过那个 h curl init curl setopt h CURLOPT HEADER 1 curl setopt h CURLOPT RETURNTRANSFER 1 curl s
  • 如何截取包含视频和画布的 div 的屏幕截图?

    注意 这不是重复的 因为我没有找到任何与截取视频和画布截图相关的问题 并且我尝试了 html2canvas 我们有一个 div 内部包含视频元素和画布 视频用于流式传输 画布用于在视频上绘制任何内容 现在 如果我截取 div 的屏幕截图 它
  • 如何阻止 Excel 工作簿在自动化打开时闪烁?

    我将 GetObject 与工作簿路径结合使用来创建新实例或获取现有 Excel 实例 如果它正在抓取现有的用户创建的实例 则应用程序窗口是可见的 如果相关工作簿路径关闭 它将打开并隐藏 但不会在屏幕上闪烁之前 Application Sc
  • 在shell脚本中将xml文件转换为csv?

    我正在尝试将 xml 文件转换为 csv 文件 我有一个像这样的输入 xml 文件
  • 通过 VMWare 测试 iOS 设备

    我正在尝试将我的 iPhone 应用程序上传到我的 iPhone 我在 VMWare 虚拟机上运行 Xcode 和 OS X 尽管 iTunes 在插入 iPhone 时可以识别它 这意味着虚拟机和 iPhone 之间的 USB 连接工作正
  • 无法使用 jackson 反序列化器反序列化 java.awt.color

    public class TestJacksonColor public static void main String args throws IOException ObjectMapper objectMapper new Objec
  • 在 TensorFlow 中使用多个 CPU 核心

    我广泛研究了有关 TensorFlow 的其他答案 但我似乎无法让它在我的 CPU 上使用多个内核 根据 htop 的说法 以下程序仅使用单个 CPU 核心 import tensorflow as tf n cpus 20 sess tf
  • 使用编号规则定义 Firestore 文档字段值

    我想将用户信息及其 id 而不是文档 id 存储在文档中 我想生成像 XYZ0001 这样的 id 特定格式 只要有新用户添加 最后 4 位数字就会自动增加 例如 XYZ0001 XYZ0002 之类的 我已经尝试过这个 return fi
  • 更改 Android SeekBar 以在主要进度之上绘制次要进度?

    我想更改 Android 搜索栏的行为 以便辅助 Android 搜索栏实际上绘制在主要 Android 搜索栏的顶部 从此处列出的 ProgressBar 文档中 http developer android com reference
  • 如何在 JAXB 中设置非命名空间 nil 和数据类型属性

    我将 JAXB 与 Scala 结合使用 我的编组代码如下所示 def marshalToXml String val context JAXBContext newInstance this getClass val writer new
  • 在 Dynamic Linq 查询中嵌套 OrderBy 是如何工作的?

    我正在使用 Dynamic Linq 今天我想构建一个稍微复杂的嵌套查询 Composition Where ExpirationDate gt DateTime UtcNow Date ExpirationDate Year 9999 O
  • For 循环不中断 (Python)

    我正在用 Python 编写一个简单的 For 循环 有没有办法在不使用 break 命令的情况下打破循环 我认为通过设置 count 10 将满足退出条件并且循环将停止 但事实似乎并非如此 注意 部分挑战是使用 FOR 循环 而不是 WH
  • 收到错误“无法添加已存在的实体”。将表的值插入数据库时​​无需过程

    我使用 Linq to sql 将记录列表插入到数据库表中 如下所示 my DataContext Class using VTMMedicalDBDataContext objVTMMedicalDBDataContext new VTM
  • Python IOError:Errno 13 权限被拒绝

    好吧 我完全困惑了 我整晚都在研究这个问题 但无法让它发挥作用 我有权查看该文件 我想做的就是阅读该死的东西 每次我尝试都会得到 Traceback most recent call last File
  • Xcode 6 对按钮图像的约束

    我正在创建一个应用程序 其仪表板包含 11 个图像 1 是背景 1 是分隔按钮的线 9 是带有图像的按钮 我尝试了几次自动约束分配 但我也尝试了手动 但我不知道如何正确设置约束 我也遵循了很多教程 如果您观看下图 您会发现按钮 图像尤其是
  • CouchDB + 凭据 + 原始通配符的 CORS 问题

    我正在尝试在 flow ch 上从 Cloudant 迁移到 Jelastic 在本地测试 离子服务 时 我收到 pouchdb 的 CORS 错误 除了我缺少的 CouchDB 之外 Jelastic 中还有其他配置吗 XMLHttpRe
  • numpy 获取许多样本而不按行替换

    我有一个非常大的清单 想象一下它看起来像这样 test llama cow horse fish sheep goat cat dog 我想多次从这个列表中抽样 我希望每个样品都被采集而不需要更换 在这种情况下我想避免 for 循环 我在
  • 使用sql计算之前的时间

    假设我有下表test它有列id time post这是它拥有的数据的样本 id time post 1 2018 06 17 16 12 30 post1 2 2018 06 17 16 13 09 post2 3 2017 06 15 1