首页 > 数据库 >sql 处理时间

sql 处理时间

时间:2024-03-23 14:45:51浏览次数:33  
标签:秒数 处理 mysql 60 时间 sql Math

mapper 中关于时间部分的 sql

时间范围内查询

  • mapper 里使用(这里用的是人大金仓数据库语法,是 String 的日期进行了转换):

    <if test="startTime != null and startTime != ''">
      AND <![CDATA[  b.cjsj >= #{startTime,jdbcType=VARCHAR}]]>
    </if>
    <if test="endTime != null and endTime != ''">
      AND <![CDATA[  b.cjsj <= TO_CHAR((TO_DATE(#{endTime,jdbcType=VARCHAR}) + 1 ),'%Y-%m-%d')]]>
    </if>
    
    • 结束时间加一才能拿到结束日期当天的数据(尽管是 <=)
  • mysql 语法:

    <if test="endTime != null and endTime != ''">
      AND <![CDATA[  cjsj <= DATE_FORMAT(DATE_ADD(#{endTime,jdbcType=VARCHAR},INTERVAL 1 DAY),'%Y-%m-%d')]]>
    </if>
    
  • 平常的时间上的操作,也常见使用 between and

    <if test="startTime != null and endTime != null ">
      AND CY_YYALSJ.JYRQ BETWEEN #{startTime} AND #{endTime}
    </if>
    
    • 但这样的话就必须是既有开始时间也要有结束时间了

时间的加减

  • 关于时间方面的加减计算

  • mysql 认为时间本就是需要用函数才能进行计算的,所以 SUM( LOGOUT_TIME - LOGIN_TIME ) loggingTime, 这种写法应该是不对的,所得结果并不正确,其计算的不是时间差,而是 mysql 中间做了一个转换操作,把时间如:2023-01-03 08:44:44 转换成了 20230103084444 进行的计算得到的秒数差

    • 主要就是记住时间不能在数据库中加减操作

    • sql中转时间操作三选一:

      1. time_to_sec(timediff(t2, t1))
      2. timestampdiff(second, t1, t2)
      3. unix_timestamp(t2) -unix_timestamp(t1)
    • kingbase的话,求秒数差:

    • 前端获取秒数可以先 Math.round() 四舍五入(原理就是加0.5,然后向下取整),然后自行换算得到时分秒,如:

      • Math.floor:向下取整
      • hours = Math.floor( xxx / (60 * 60) );
      • minutes = Math.floor( ( xxx % (60 * 60) ) / 60 );
      • seconds = xxx % 60;

标签:秒数,处理,mysql,60,时间,sql,Math
From: https://www.cnblogs.com/zhu-ya-zhu/p/18053763

相关文章

  • skynet框架:关键流程的异常处理思路
    当一个执行流程存在对外调用时,我们讨论如何保证流程的可用和安全;假设流程是关键且强制原子性;--serviceAfunctionmain() step1() skynet.call(serviceB,"lua","step2") step3() returntrueend--serviceBfunctionCMD.step2() ...endcallserviceB动......
  • 阿里云服务器安装mysql后本地连接失败
    阿里云服务器安装mysql后本地连接失败一、问题描述在阿里云安装mysql后,想在本地电脑用可视化工具连接mysql,但是提示连接失败错误如图所示:二、问题分析1、检查3306端口首先,检查阿里云服务器的安全组是否开放了3306端口可以看到,我已经放行了3306端口。2、检查防火墙我选......
  • 数据库面试高频题目 - 深度解析 MySQL:探秘关系型数据库的核心技术(一)
       本文将深入探讨MySQL,这是关系型数据库中的核心技术,被广泛应用于数据存储和管理。透过高频面试题解析,我们将深入研究MySQL在数据建模、查询优化和事务处理中的作用。无论你是初学者还是渴望加深对关系型数据库技术的了解,本文都将为你提供实用的面试准备。一、innod......
  • 政安晨:【深度学习处理实践】(九)—— Transformer架构
    咱们接着这个系列的上一篇文章继续:政安晨:【深度学习处理实践】(八)——表示单词组的两种方法:集合和序列https://blog.csdn.net/snowdenkeke/article/details/136762323Transformer是一种架构,用于在自然语言处理(NLP)和其他任务中进行序列到序列(seq2seq)学习。它于2017年由Vaswani......
  • Java中过滤器应用一统一处理请求和响应中文乱码
      请求/响应中文乱码演示写一个简单的Servlet进行测试,返回数据的时候,会出现中文乱码如下图所示。有时候请求的数据中如果包含中文,如果没有经过处理,同样会出现中文乱码。 解决办法出现中文乱码时,就可以考虑统一处理,如果不统一处理,在每一个Servlet中,如果数据返回中有中文,......
  • MySQL中行级锁与表级锁与页级锁的区别
    #       再次复习MyISAM和InnoDB存储引擎时,发现两个存储引擎的区别包括MyISAM只支持表级锁,而InnoDB还支持行级锁,因为没有系统的了解过锁的概念,因此花了点时间进行了初步的学习,若有不对之处,望有指正;#简单回忆MyISAM与InnoDB区别MyISAM是5.5版之前,由于其缺陷明显......
  • Thumbnailator处理图片
    Thumbnailator处理图片 读取源图of(String...files)of(File...files)of(InputStream...inputStreams)of(URL...urls)输出文件toFile(StringoutFilepath)toFile(FileoutFile)toOutputStream(OutputStreamos)缩放size(intwidth,intheight)width(intwidt......
  • PostgreSQL中的CTE(公共表表达式)知多少? - (中级)
    与我联系:微信公众号:数据库杂记   个人微信: iiihero我是iihero. 也可以叫我Sean.iihero@CSDN(https://blog.csdn.net/iihero) Sean@墨天轮 (https://www.modb.pro/u/16258)数据库领域的资深爱好者一枚。水木早期数据库论坛发起人 db2@smth就是俺,早期多年水木......
  • Mysql默认字符集修改
    0.查看自己的字符集配置mysql-uroot-p123456-e"showcharacterset\G;"查看所有的字符集查看常用的字符集:mysql-uroot-p123456-e"showcharacterset\G;"|egrep"gbk|utf8|latin1"|awk'{print$0}'查看MySQL当前的字符集mysql>showvariables......
  • app直播源代码,当前用户截止当前时间在本月的连续签到统计
    需求:实现下面接口,统计当前用户截止当前时间在本月的连续签到天数有用户有时间我们就可以组织出对应的key,此时就能找到这个用户截止这天的所有签到记录,再根据这套算法,就能统计出来他连续签到的次数了 代码UserController@GetMapping("/sign/count")publicResults......