【DB】部分MySQL操作记录
工作中涉及到部分统计工作,恰好把之前的有些SQL再熟悉回顾一下。
一.涉及到时间统计部分:
求时间差:
SELECT TimeStampDiff(day, (SELECT date(create_date) FROM account WHERE ID = 37), (SELECT CURDATE())) AS '试用时间';SELECT DATEDIFF ((SELECT date(create_date) FROM account WHERE ID = 37), (SELECT CURDATE())) AS '试用时间';
两者的结果是一样的,如下:
这里简单说明一下:
简单来说,其实里面只是嵌套了两个小的sql而已,如果这样写,可能你一下子就明白了:
SELECT TimeStampDiff(day, "2017-02-20", "2017-07-07"); SELECT DATEDIFF("2017-02-20", "2017-07-07") AS DiffDate;
对的,其实就是这样的,没别的什么。
这里补充几条关于时间的SQL:
-- 将当前时间拆分展示:SELECT NOW(),CURDATE(),CURTIME();
-- 只展示日期,而不展示分钟秒等,如:"2017-02-20"
SELECT date(create_date) FROM account WHERE ID = 37;
当然要计算某个时间到现在的时间查,有很多方法,也可以用Linux shell方式去计算:
如下:
#!/bin/bash # first_stamp=`date -d "2014-12-05 19:45:44" +%s` #计算指定日期的时间戳 today_stamp=`date +%s` #计算当天的时间戳 let day_stamp=($today_stamp - $first_stamp) #当天的时间戳减去指定的时间戳 let day=($day_stamp/86400) #相差的时间戳除以一天的秒数就得到天数 echo $day
或者:
start=`date +%s -d "2012-11-28 15:55:37"` end=`date +%s -d "2017-07-07 15:55:52"` echo $(($end-$start))
如果是日志文件,而不是SQL文件的话,可以用另外的方式进行:
# 如果日志文件输出格式是上述的话,还有个方法: cat 日志文件 | awk '/^000/{start=$2 " " $3end=$4 " " $5stm=mktime(gensub(/[:-]/, " ", "g", start))etm=mktime(gensub(/[:-]/, " ", "g", end))print $1 " - " etm-stm }'
关于SQL中时间相关,参考:http://www.phpernote.com/mysql/1130.html 这里也有一些使用的小技巧。
当然更完整的,还是参考W3School:https://www.w3cschool.cn/mysql/func-date.html
关于Linux中的时间:
关于时间,在Linux中可以直接安装,并显示日历:
sudo apt-get install cal
关于日志,还有其他一些更详细的命令,直接man一下,可以看到更多。
顺便提一个问题:如果要问你历史上某一天是星期几(过去或者未来),你怎么做呢?比如说998年2月3日,或者3456年7月9日;你怎么做呢?
我看到这里有一个有趣的帖子:https://segmentfault.com/a/1190000000345958,作者写的很认真,把计算方法,原理等全部写了出来。
但如果当你在linux环境中,可以直接一条命令可以获取到结果:
如下:
cal 998-02-03,或者cal 3456-07-09
-------文末彩蛋:
你可以试试 1752年9月份看看:
更多有趣信息,请参考:http://www.cnblogs.com/haochuang/p/7133518.html
啊
【DB】部分MySQL操作记录相关推荐
- 浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录
目录 (一)前言 (二)实际案列 1. 背景说明: 2. 操作步骤 (1)打开Portal (2)搜索"监视器" (3)点击左侧选项卡中的"日志" (4)在新的 ...
- mysql 数据修改记录日志_mysql对数据的更新操作记录在哪个日志中?
mysql对数据的更新操作记录在通用查询日志和二进制日志中.通用查询日志用来记录用户的所有操作,包括启动和关闭 MySQL 服务.更新语句和查询语句等:二进制日志会以二进制的形式记录数据库的各种操作, ...
- mysql的记录操作的日志文件_MySql 的操作日志 历史记录
如何查看mysql数据库操作记录日志 1.首先确认你日志是否启用了mysql>show variables like 'log_bin'. 2.如果启用了,即ON,那日志文件就在mysql的安装 ...
- og-bin=mysql-bin_init_connect + binlog 记录 mysql 操作日志
init_connect + binlog 记录 mysql 操作日志 简介 mysql 的 init_connect 变量是每个客户端连上数据库服务器时执行的一组数据,这组数据可以是一个或者多个sq ...
- mysql数据库主从操作记录
master数据库已投入生产一段时间后,做主从复制的操作记录 环境: master库:172.18.237.13 slave库:172.18.237.14 mysql版本说明: master:mysq ...
- mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- MySQL : MySQL如何查看操作记录
文章目录 1.美图 2.背景 3.概述 4.文件方式 5.table方式 6.注意点 1.美图 2.背景 突然发现自己测试的库,突然某个字段全部改变了,因为这个只有我用,但是感觉应该是有人修改了,但是 ...
- Mysql如何查看操作记录
分为文件记录日志和数据库记录日志两种方式,效果相同 一 .文件记录数据库操作日志 首先进入mysql输入指令 show variables like 'gen%'; general_log是开启还是关 ...
最新文章
- Go开发者路线图2019,请收下这份指南
- 互联网协议 — RIP 路由信息协议
- 打印金子塔||打印乘法表 用函数的思想实现
- Web安全之文件包含漏洞
- 【python】-socketServer
- linux 进程 释放内存,Linux 释放内存方法和原理
- mysql semisync 恢复_mysql半同步复制(semi_sync_replication)搭建及使用
- c语言程序设计报告用于医院食品加工等部,南开(本部)《C语言程序设计》14春在线作业答案...
- 计算机组成原理第二次小组讨论课,巢湖电大开放教育计算机科学与技术(doc 6页).doc...
- mysql下载了解压版怎么_Win10安装MySQL5.7版本 解压缩版方法
- 页面编码和js文件不同导致的IE6下脚本错误
- GEE:快速下载数字高程DEM数据
- QQ互联验证Universal Link 状态提示应用的universallink配置中不含互联信息
- 2022-2028年全球与中国皮卡后视镜行业市场前瞻与投资战略规划分析
- VMware 虚拟SCSI、SATA 和 NVMe 存储控制器条件、限制和兼容性
- STM32单片机控制A1333角度传感器磁编码器
- CSS中margin属性详解
- leetcode 6 z字型变换
- 【愚公系列】2023年01月 Java教学课程 043-时间日期类
- 【读点论文】CMT: Convolutional Neural Networks Meet Vision Transformers
热门文章
- Java泛型你了解多少
- mysqldump 导出数据库中每个表的前100条(前n条)
- golang 关闭gc 并手动gc_Golang垃圾回收 屏障技术
- selector选择器查询
- mapview | 如何快速使用交互式地图展示空间数据信息
- 在php中array函数的作用是什么意思,php中的array函数有什么用
- 针对WEB前端新人的前端知识体系
- 10个前端开发人员必须知道的CSS框架
- oracle 定时器时间分区_Oracle数据库之oracle按时间分区以及自动分区
- python创建实例属性_Python学习笔记__6.5章 实例属性和类属性