工作中涉及到部分统计工作,恰好把之前的有些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. C#编程(二十六)----------泛型

    泛型 有了泛型,就可以创建独立于被包含类型的类和方法了.我们不必给不同的类型编写功能相同的许多方法或类,只创建一个方法或类即可. 另一个减少代码的选项是使用object类,但object类不是类型安全 ...

  2. 一文犀利看懂中美贸易战 z

    如今的中国面对着前所未有的经济全球化的大环境.面对着如何成为创新性国家的重任. 钛媒体注:美国东部时间 7 月 6 日凌晨0:01 分,美国正式开始对 340 亿美元的中国产品加征 25% 的关税,这 ...

  3. ack-grep 代码全文搜索

    安装 ubuntu下要安装ack-grep,因为在debian系中,ack这个名字被其他的软件占用了. sudo apt-get install ack-grep 特点 大家都说自己的东西好,因此ac ...

  4. 《Excel效率手册:早做完,不加班》

    <Excel效率手册:早做完,不加班> 基本信息 作者: 陈锡卢    杨明辉 出版社:清华大学出版社 ISBN:9787302350743 上架时间:2014-5-8 出版日期:2014 ...

  5. 图像质量评估(IQA)

    图像质量评估函数的分类曾是一个比较有争议的话题,在2l世纪以前曾经有过 比较多的讨论.但是随着研究的深入和技术的广泛应用,研究人员对于图像质量 评估函数的分类有了统一的认识,即从实际应用中参考信息供给 ...

  6. TensorFlow的离线安装

    主要通过whl方式进行配置. 1.1          Whl文件下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/ 注意:必须安装numpy-mkl, ...

  7. [转]wget 下载整个网站,或者特定目录

    FROM : http://www.cnblogs.com/lidp/archive/2010/03/02/1696447.html 需要下载某个目录下面的所有文件.命令如下 wget -c -r - ...

  8. 整合 Ext JS 和第三方类库

    介绍 ExtJS提供了许多高度可定制化内置组件.如果它不在框架(framework)里面,你可以很容易的扩展这些类,或者浏览Sencha市场(Sencha Market) 寻找你可能需要的任何东西.那 ...

  9. 一种开源的分布式消息系统Nats

    一种开源的分布式消息系统Nats 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 1.NATS介绍 NATS是一个开源的 ...

  10. 样条之EHMT插值函数

    核心代码: ////////////////////////////////////////////////////////////////////// // 埃特金插值 ////////////// ...