MySQL select DATETIME 类似到分钟

2023-12-20

我必须比较两个表之间相对于同一时间的结果,但时间戳因记录方式而有所不同。 我想获得像这样的结果实施例1但我只得到带星号的值,如实施例2。 从比较中删除秒或选择与最接近的 DATETIME 值相对应的值的最佳方法是什么?

目前我正在使用这个查询:

SELECT Table1.TimeSTamp1, Table1.Param1, Table2.TimeStamp2, Table2.Param2 
    FROM Table1, Table2 
    WHERE ... conditions for the other parameters of Table1 and Table2... 
    AND Table1.TimeSTamp1 = Table2.TimeStamp2

热烈欢迎任何有关最佳实践的建议。


实施例1

TimeStamp1          ¦   Param1  ¦   TimeStamp2          ¦   Param2
2011-01-01 00:00:35 ¦   1       ¦   2011-01-01 00:00:35 ¦   a       *
2011-01-01 00:01:35 ¦   2       ¦   2011-01-01 00:01:35 ¦   b
2011-01-01 00:02:37 ¦   3       ¦   2011-01-01 00:02:35 ¦   c
2011-01-01 00:03:31 ¦   4       ¦   2011-01-01 00:03:35 ¦   d
2011-01-01 00:04:32 ¦   5       ¦   2011-01-01 00:04:35 ¦   e
2011-01-01 00:05:38 ¦   6       ¦   2011-01-01 00:05:35 ¦   f
2011-01-01 00:06:36 ¦   7       ¦   2011-01-01 00:06:36 ¦   g       *
2011-01-01 00:07:32 ¦   8       ¦   2011-01-01 00:07:35 ¦   h
2011-01-01 00:08:33 ¦   9       ¦   2011-01-01 00:08:35 ¦   i
2011-01-01 00:09:33 ¦   10      ¦   2011-01-01 00:09:33 ¦   l       *
2011-01-01 00:10:35 ¦   11      ¦   2011-01-01 00:10:35 ¦   m       *
2011-01-01 00:11:29 ¦   12      ¦   2011-01-01 00:11:31 ¦   n

lll 实施例2

TimeStamp1          ¦   Param1  ¦   TimeStamp2          ¦   Param2
2011-01-01 00:00:35 ¦   1       ¦   2011-01-01 00:00:35 ¦   a
2011-01-01 00:06:36 ¦   7       ¦   2011-01-01 00:06:36 ¦   g
2011-01-01 00:09:33 ¦   10      ¦   2011-01-01 00:09:33 ¦   l
2011-01-01 00:10:35 ¦   11      ¦   2011-01-01 00:10:35 ¦   m

这个 MySql 表达式将为您返回 DATETIME 值,并将秒数清零。

CONVERT(DATE_FORMAT(table.column,'%Y-%m-%d-%H:%i:00'),DATETIME)

看看这个。https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format。所以你最终可能会得到这样的查询:

SELECT Table1.TimeSTamp1, Table1.Param1, Table2.TimeStamp2, Table2.Param2 
    FROM Table1
    JOIN Table2 ON  CONVERT(DATE_FORMAT(Table1.TimeStamp1,'%Y-%m-%d-%H:%i:00'),DATETIME)
                 =  CONVERT(DATE_FORMAT(Table2.TimeStamp2,'%Y-%m-%d-%H:%i:00'),DATETIME)
    WHERE ... conditions for the other parameters of Table1 and Table2... 

不过要小心。自动生成的时间戳有点像浮点数;当其中两个出现相同的情况时,这只是运气。将时间戳截断为分钟可能没问题,但最好将一个时间戳减去另一个时间戳,然后比较差异(或差异的绝对值)。

此外,此连接会很慢,因为它必须对每个值运行第二次截断函数,因此它不能使用任何索引。

您可以用一个时间戳减去另一个时间戳TIMESTAMPDIFF() https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff。不过要小心。该函数仅在时间戳相隔几天之内的秒级上正确工作;它毫无优雅地溢出(正如我痛苦地发现的那样)。

您可以尝试在插入时间戳时将时间戳截断为分钟。这会让你索引它们。

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

MySQL select DATETIME 类似到分钟 的相关文章

  • SQL:每天选择最接近特定时间的一条记录

    我有一张表存储某个时间点的值 CREATE TABLE values value DECIMAL datetime DATETIME 每一天可能有多个值 也可能某一天只有一个值 现在我想获取给定时间跨度 例如一个月 内最接近一天中给定时间的
  • Codeigniter 加入多个条件

    我正在使用 Codeigniter Active Records 课程 我想加入我的users与我的桌子clients表 这样我就可以显示用户的 真实 姓名 而不仅仅是他们的 ID 这是什么clients表看起来像 示例 列 a 1 a 2
  • MySQL InnoDB 查询性能

    我正在尝试优化一个简单的 sql 查询 该查询将多次运行大量数据 这是场景 MySQL 与 InnoDB 表 where 和 join 中使用的所有字段都已索引 表有 FK 我不需要查询的整个缓存 但每个表的缓存是可能的 表有更多的更新 插
  • 通过货币换算获取每种产品类型的最低价格

    我想选择每种产品类型中最便宜的 包括运费 价格转换为当地货币 最便宜 产品 价格 产品 运费 seller to aud 我的数据库有如下表 PRODUCTS SELLERS id type id seller id price shipp
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • MySQL 全文搜索不适用于某些单词,例如“house”

    我已经在 3 个字段中的一小部分记录上设置了全文索引 也尝试了 3 个字段的组合 并得到了相同的结果 有些单词返回结果很好 但某些单词如 house 和 澳大利亚 不这样做 有趣的是 澳大利亚 和 家乡 这样做 这似乎是奇怪的行为 如果我添
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • 在 x 轴上操作日期 Pandas Matplotlib

    我有一组非常简单的数据 如下所示 我正在寻找一种方法来绘制此堆积条形图并格式化 x 轴 日期 使其从 1996 年 31 月 12 日开始 到 2016 年 31 月 12 日结束 增量为 365 天 我编写的代码绘制了每个日期 因此 x
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • 将记录分成两列

    我的数据库中有一个 学生 表 其中包含大约 5 000 条记录 我想将这些记录显示在two分区 如何在不执行查询两次的情况下做到这一点 仅使用单个查询 显示示例http www freeimagehosting net uploads f1
  • 社交应用程序的数据库设计和优化注意事项

    通常的情况 我有一个简单的应用程序 允许人们上传照片并关注其他人 因此 每个用户都会有类似 墙 或 活动源 的东西 他或她可以在其中看到他 她的朋友 他或她关注的人 上传的最新照片 大多数功能都很容易实现 然而 当涉及到这个历史活动源时 由
  • MySql 最后插入 ID,连接器 .net

    我正在使用 MySql Connector net 我需要获取最后一个查询生成的插入 id 现在 我假设返回值是MySqlHelper ExecuteNonQuery应该是最后一个插入id 但它只返回1 我正在使用的代码是 int inse
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 如何在Oracle中使用Timestamp_to_scn和Scn_to_timestamp?

    我的查询结果是这样的 select cast to date a start time mm dd yyyy hh mi ss pm as timestamp date of call ora rowscn from calling tab
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save

随机推荐

  • 在 api 调用中更新 2 个猫鼬模式

    目前我正在尝试在 api 调用中更新两个不同的用户架构 第一个模式是登录用户模式 我们给它起一个名字 Tom 第二个模式是注册该应用程序的其他用户 我们给它一个名称 John 架构代码 架构 js var mongoose require
  • JPQL 中的 timestampdiff 等效项(不使用条件)

    我想在 JPQL 中使用以下 mysql 函数 TIMESTAMPDIFF YEAR some start date CURDATE 另外 我不必在 JPA 中使用 Criteria 因为我们正在遵循编写命名查询 JPQL 的实践 那么 这
  • Android studio 始终使用 JDK 7,不要切换到 JDK 8

    我遇到了一些有趣的问题 当我尝试通过单击来更改 JDK 时文件 gt 项目结构 gt SDK 位置 我将其更改为我的新版本 然后我点击OK然后再次打开此页面 它向我显示了以下内容 为什么不想换JDK 甚至我的 PATH 设置为 JDK 8
  • MFCC 的含义

    我有一个概念问题 我知道什么是梅尔标度以及它代表什么 而且我知道这种频谱图仍然包含太多我需要的信息 我认为如果我们想减少频谱图的信息数量 我们可以使用 MFCC 但我实在不明白MFCC是什么以及它代表什么 我在语音识别过程中使用 MFCC
  • 如何在保留子目录的同时拆分 git 存储库?

    我想要的是类似于这个问题 https stackoverflow com questions 359424 detach subdirectory into separate git repository 但是 我希望拆分为单独存储库的目录
  • F# ionide webshaperserverclient - 如何运行

    我跑步时遇到问题websharperserverclient来自 ionide 项目生成器的模板应用程序 并且在网上找不到任何如何操作的信息 我得到的最接近的东西是这个问题 https stackoverflow com questions
  • 纯JSP页面导航最佳实践?

    在我的 Web 应用程序的各个 JSP 页面之间实现导航链接的最佳方法是什么 假设我有一个list jsp显示项目列表 然后 用户单击其中一项以查看该项目的更多详细信息view jsp 现在我需要一个链接view jsp回到list jsp
  • 我可以使用模型绑定验证 HTTP 请求签名令牌和随机数吗?

    我正在使用 ASP NET MVC 设置一个端点 可以向该端点发出操作和检索数据的请求 基本上是一个 API 我使用 2 legged OAuth 模型来验证请求是否使用密钥和签名方法以及随机数表进行签名 以防止劫持 由于模型绑定在 ASP
  • PHP flock() - 幕后是什么?

    在与 PHP 源码搏斗了半个小时后 我放弃了 P 问题是 在 Gentoo Linux 系统上 PHP freeze 函数调用归结为什么系统调用 我遇到了一些问题 比如每 20 次循环迭代中阻塞 30 秒类问题 我想知道为什么会这样 exa
  • 为什么我在 vue js 中收到“无法读取未定义的属性‘状态’”错误

    我的 store index js 是 import Vue from vue import Vuex from vuex Vue use Vuex export default new Vuex Store state name Alic
  • 反应挂钩。定期运行 useEffect

    我需要定期获取数据并将其更新到屏幕上 我有这个代码 const temperature setTemperature useState useEffect gt fetch urlToWeatherData then function re
  • 从 Excel 中包含逗号分隔值的两个单元格中提取公共值

    有没有一种简单的方法可以从两个以逗号分隔的数字单元格中提取共同的数字 我有单元格 每个单元格中有 12 个逗号分隔的数字 它们并不都是唯一的 有些数字可以重复两次 但不能超过两次 数字都是正数 并且只能是一位或两位数字 我的数据是这样的 它
  • 解析“DateTime.Now”?

    我需要翻译这样的字符串 DateTime Now AddDays 7 转化为它们的等价表达式 我只对 DateTime 类感兴趣 Net 中是否有内置的东西可以帮助我做到这一点 或者我只需要编写自己的小解析器 您可以雇用FLEE http
  • 通知点击事件时的通话活动

    我想在用户下拉通知并点击该通知时调用该活动 我怎样才能做到这一点 Call setLatestEventInfo on the Notification对象 提供一个PendingIntent当他们点击通知抽屉中的您的条目时 就会开始您的活
  • Cypress:使用 cy.intercept() 检查是否尚未进行调用?

    使用 cy intercept 拦截 和存根 几个网络请求 到谷歌标签管理器 但希望在我的测试中尽早进行测试 然后再期望它们被调用 我将如何测试我正在拦截的两条路线haven t被叫了吗 Thanks 您可以利用cy spy命令 cy in
  • 如何在 django admin 中显示布尔属性

    众所周知 显示method在 Django 管理中将值返回为布尔值可以通过设置轻松完成boolean属性 class MyModel models Model def is something self if self something
  • Visual Studio 2022 挂起并显示“正在打开文件...”消息

    当我尝试打开 dbml 文件时 Visual Studio 2022 挂起并显示 正在打开文件 消息 当我打开任何其他文件时不会发生这种情况 我尝试通过以下方式解决这个问题 卸载Devexpress 卸载Visual Studio 2022
  • 通过过滤将消息从 Amazon SNS 路由到 SQS

    在 RabbitMQ 中 可以创建一个交换器 然后将其绑定到多个队列 每个队列都有一个路由键 这使得消息传递架构如下所示 message x foo msg q bar msg q msg logger q 客户端发布消息到message
  • 意外的关键字参数“缓冲” - python 客户端

    我收到错误 getresponse 收到意外的关键字参数 缓冲 完整的错误日志是 INFO Kivy v1 8 0 INFO Logger Record log in C Users Sudheer kivy logs kivy 14 08
  • MySQL select DATETIME 类似到分钟

    我必须比较两个表之间相对于同一时间的结果 但时间戳因记录方式而有所不同 我想获得像这样的结果实施例1但我只得到带星号的值 如实施例2 从比较中删除秒或选择与最接近的 DATETIME 值相对应的值的最佳方法是什么 目前我正在使用这个查询 S