工作中涉及到部分统计工作,恰好把之前的有些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. (Delphi) Using the Disk Cache 使用磁盘缓存

    The Chilkat Spider component has disk caching capabilities. To setup a disk cache, create a new dire ...

  2. 电子书下载:Delphi XE 5 移动开发入门手册(完整版)

    更多电子书请到: http://maxwoods.400gb.com 下载:Delphi XE5移动开发入门手册(完整版)

  3. Windows Phone本地数据库(SQLCE):11、使用LINQ查询数据库(翻译) (转)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的第十一篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的 ...

  4. HTML5文件上传qq、百度、taobao等比较(改进支持三种状态提示)

    拖拽过程详解: 1:文件未拖出文件选择框的时候提示:将要上传的文件或文件夹拖拽至此区域 2:文件拖出文件选择框但未拖入上传的文件框提示:请继续拖拽文件或文件夹至此区域 3:文件拖出文件选择框且已拖入上 ...

  5. docker查看容器的网络ip

    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id 可直 ...

  6. Java命令学习系列(零)——常见命令及Java Dump介绍

    一.常用命令: 在JDK的bin目彔下,包含了java命令及其他实用工具. jps:查看本机的Java中进程信息. jstack:打印线程的栈信息,制作线程Dump. jmap:打印内存映射,制作堆D ...

  7. Holt Winter 指数平滑模型

    1 指数平滑法 移动平均模型在解决时间序列问题上简单有效,但它们的计算比较难,因为不能通过之前的计算结果推算出加权移动平均值.此外,移动平均法不能很好的处理数据集边缘的数据变化,也不能应用于现有数据集 ...

  8. Variational Inference

    作者:孙九爷链接:https://www.zhihu.com/question/41765860/answer/101915528来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  9. 利用js实现 禁用浏览器后退 浏览器返回

    现在很多的内部系统,一些界面,都是用户手动点击退出按钮的.但是为了避免,用户误操作 点击浏览器后退,或者用鼠标手势后退什么的.容易出现误操作.        所以在有些页面上,适当的禁用浏览器的后退, ...

  10. C++二维数组 取地址 复制给 二维指针

    本来应该是个简单的问题,但是我就不明白了,为什么会段错误了... #include<stdio.h> #define UINT32 unsigned int UINT32 NType1_X ...