工作中涉及到部分统计工作,恰好把之前的有些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/) #相差的时间戳除以一天的秒数就得到天数
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=$ " " $
end=$ " " $
stm=mktime(gensub(/[:-]/, " ", "g", start))
etm=mktime(gensub(/[:-]/, " ", "g", end))
print $ " - " 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操作记录的更多相关文章

  1. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  2. mysql操作记录

    use mysql;select host,user,password from user; grant all privileges on *.* to root@'%' identified by ...

  3. MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理

    MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...

  4. day 37 MySQL行(记录)的详细操作

    MySQL行(记录)的详细操作   阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操 ...

  5. Mysql更换MyISAM存储引擎为Innodb的操作记录

    一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看: 1)查看mysql是否安装了innodb插件.通过下面的命令结果可知,已经安装了innodb插件. mysql> show p ...

  6. windows下cmd记录MYSQL操作

    我们在cmd下操作MYSQL,当需要复制某条命令的时候,需要右键标记,然后选取,然后......各种不方便! 有没有比较方便的方式,可以将我们的操作记录自动的实时保存下来,当我们需要操作的时候,可以高 ...

  7. Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

    Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳 ...

  8. Mysql常用操作记录

    在linux平台中相关的MySql操作 打开Mysql mysql -uroot -p  //-u后边为用户名,-p后边为密码    1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql& ...

  9. Mysql+Keepalived双主热备高可用操作记录

    我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...

随机推荐

  1. datagrid在MVC中的运用01-基本属性并实现分页

    本文体验jQuery EasyUI的datagrid在MVC中的应用.主要涉及到: ※ datagrid的基本属性和方法 ※ datagrid分页在前后台的实现 最终效果: 与视图显示对应的view ...

  2. Mybatis-Plus 多表联查分页

    原文:https://www.jianshu.com/p/759b6430ed5b 分析 使用的工程,依旧是 spring-boot,关于分页,官网给出了一个单表的 demo,其实多表分页实现原理相同 ...

  3. 由pushViewController说起可能出线的各种死法

    做苹果开发或者果粉对导航条这个东西应该都不陌生,这咚咚在小小的屏幕上通过一个简单的View的队列管理来做到手机界面的有条理管理,但是开发过程程序员可能碰到各种死法,下面分享一二.            ...

  4. ios 向sqlite数据库插入和读取图片数据

    向sqlite数据库插入和读取图片数据 (for ios) 假定数据库中存在表 test_table(name,image), 下面代码将图片文件test.png的二进制数据写到sqlite数据库: ...

  5. C#中的Hashtable

    richTextBox1.Text = ""; Hashtable ht = new Hashtable(); ht.Add("); ht.Add("); ht ...

  6. 手工Ghost安装系统

    (1)其实手工ghost很简单,正确操作的话是不会有什么问题的,在PE下,打开ghost程序 (2)按任意键进入ghost操作界面,出现ghost菜单,我们现在只用到Local菜单项,下面有三个子项: ...

  7. WebRTC 基于GCC的拥塞控制(下)

    转自;http://blog.csdn.net/ljh081231/article/details/79152578 本文在文章[1]的基础上,从源代码实现角度对WebRTC的GCC算法进行分析.主要 ...

  8. Java并发编程的艺术(十一)——线程池(2)

    Executor两级调度模型 在HotSpot虚拟机中,Java中的线程将会被一一映射为操作系统的线程. 在Java虚拟机层面,用户将多个任务提交给Executor框架,Executor负责分配线程执 ...

  9. Pandas 快速入门(二)

    本文的例子需要一些特殊设置,具体可以参考 Pandas快速入门(一) 数据清理和转换 我们在进行数据处理时,拿到的数据可能不符合我们的要求.有很多种情况,包括部分数据缺失,一些数据的格式不正确,一些数 ...

  10. Spearman Rank(斯皮尔曼等级)相关系数

    转自:http://blog.csdn.net/wsywl/article/details/5859751 1.简介 在统计学中,斯皮尔曼等级相关系数以Charles Spearman命名,并经常用希 ...