前一篇写了PHP的时间函数(还是草稿),这一篇就写Mysql的时间函数吧。最近做的项目,关乎权限,于是自然而然的就与有效期联系在了一起。其中有一个功能是生成特殊表格,可以根据用户的选择,按周、月、季、年来处理数据。这其中要与PHP和MySQL函数打交道。考虑到这些时间函数,是进行业务的基础。于是还是牢牢的背下来比较好。


1、当前的时间(字符串时间与unix时间戳时间):

  经常有需求要获取服务器当前的时间,在mysql里面很简单:now()

这个now() 时间是当前mysql服务器的时间,并不是我们执行操作(比如用户注册)行为的时间。mysql执行操作行为的时间是:sysdate();

     这两个时间的主要区别:now() 是系统的时间。是一直都存在的。而sysdate() 是我们执行一个操作时候的时间。关于获取当前时间,mysql还有一些其他的函数,不过名字起的乱七八糟,什么current_timestamp()   current_timestamp,localtime()   localtime,localtimestamp()   localtimestamp。名字明明是timestamp,但是结果却是一个字符串,愿意学习的朋友可以多记几个。

上面的now() 和sysdate()  是一个字符串的时间。我们有时候,也会用到当前的时间戳。

当前的时间戳:unix_timestamp();

这个函数如果()里面没有传值,获取的是当前的时间戳。如果传值则是获取所串进去的时间的时间戳。看图:

2、时间的格式化。

    时间的格式化一般分为以下几种需求:

①   将字符串的时间变成unix时间戳。例如将  2015-11-14 04:03:16 变成 1447445028

②  将unix时间戳变成字符串的时间。 例如将   1447445028 变成 2015-11-14 04:03:16

③  将字符串时间戳进行格式化,只取年, 只取月,只取周等等。

来吧,我们一一击破。

针对第一种需求,前面已经讲过了,使用unix_timestamp()函数即可。例如 unix_timestamp('2014-05-09');

针对第二种需求,既然有unix_timestamp函数也肯定有from_unixtime这个函数。顾名思意,是将一个unixtime转化成时间戳。有两种写法,可以各取所需。

针对第三种需求:经常需要获取某个时间的年份、月份、或者在一年中是第几周、是第几个季度等等。那么我们就需要下面这些函数了。

这些单词比较简单,所以记忆起来也不费功夫。

比如有一个需求,我想看看一周中,周一至周五中,注册会员的情况是怎样的。则上面的情况就不能帮助我们了。我们需要取出会员的注册时间,然后拿到PHP里面换算出,今天是星期几,然后统计人数。

mysql知道我们可能会有这个需求,于是类似的函数也写好了。

又比如,我想知道每个月月末那一天公司产品的销售状况。通常这个要靠PHP来算出一个月的最后一天是什么,然后到数据库去查。但是mysql又帮我做好了,简直太省力了。

补充一点: 使用extract()函数也能满足上面的需求,具体的用法:select extract();下面的用法看看就好,如果有喜欢的,也可以使用。

set @dt = '2008-09-10 07:15:30.123456';
 
select extract(year from @dt); -- 2008
select extract(quarter from @dt); -- 3
select extract(month from @dt); -- 9
select extract(week from @dt); -- 36
select extract(day from @dt); -- 10
select extract(hour from @dt); -- 7
select extract(minute from @dt); -- 15
select extract(second from @dt); -- 30
select extract(microsecond from @dt); -- 123456
select extract(year_month from @dt); -- 200809
select extract(day_hour from @dt); -- 1007
select extract(day_minute from @dt); -- 100715
select extract(day_second from @dt); -- 10071530
select extract(day_microsecond from @dt); -- 10071530123456
select extract(hour_minute from @dt); -- 715
select extract(hour_second from @dt); -- 71530
select extract(hour_microsecond from @dt); -- 71530123456
select extract(minute_second from @dt); -- 1530
select extract(minute_microsecond from @dt); -- 1530123456
select extract(second_microsecond from @dt); -- 30123456

3、日期的加减运算。

实际项目中,经常会查看一些产品的历史性信息。有了mysql的日期加减函数,就不需要先用PHP算好时间,然后传进mysql里。这些mysql都可以处理。

还有一些其他的用法,总之只要你想到的,Mysql都已经做好了。感兴趣的,可以参考mysql手册。

后期如果有遇到比较好用的功能也会继续补充。


补充:

mysql的默认 字段是不能是函数的,但是mysql的timestamp类型却可以使用mysql的自带函数。目前仅知道可以使用current_timestamp()外,不知道还可以使用什么。

MySQL时间函数,用起来比PHP还爽的更多相关文章

  1. mysql时间函数和时间操作

    补 原文链接:http://blog.csdn.net/yuxiayiji/article/details/7480785 select timediff('23:40:00', ' 18:30:00 ...

  2. MySQL 时间函数加减计算

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now() mysql> select now();+———————+| now() |+ ...

  3. joda-time的简单使用及mysql时间函数的使用(今天,本周,本月)

    近期在做一些首页的统计数据复习了下mysql的时间函数,以及后续修改成 传入时间查询时使用的joda-time 软件简介 JodaTime 提供了一组Java类包用于处理包括ISO8601标准在内的d ...

  4. Mysql时间函数

    http://blog.sina.com.cn/s/blog_6d39dc6f0100m7eo.html mysql中函数和关键字不区分大小写.下文函数的datetime参数处既可以用时间字符串也可以 ...

  5. mysql 时间函数 时间转换函数

    时间函数 Now 获取当前时间 current_timestamp 获取当前时间 localtimestamp 时间转换 UNIX_TIMESTAMP    "2009-09-15 00:0 ...

  6. mysql 时间函数date_format

    http://toptree.iteye.com/blog/812642今天,在开发邮件系统的时候发现有很多的邮件没有发送成功,想手动把数据修改.找了mysql 的日期函数 获得的pubtime为St ...

  7. mysql时间函数操作

    Mysql时间转换函数 https://blog.csdn.net/w_qqqqq/article/details/88863269 mysql时间日期函数 https://www.cnblogs.c ...

  8. mysql 时间函数转换

    1 NOW() //当前时间 2 SYSDATE() //当前时间 3 CURRENT_TIMESTAMP 4 以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的 ...

  9. mysql 时间函数总结

    1. 获取当前时间   select now(); // 2018-08-24 11:01:26   select unix_timestamp(); // 1535079695   总结:unix_ ...

随机推荐

  1. Bootstrap系列 -- 3. 段落

    一. 段落基本用法 1. 段落使用<p>标签 2. 段落全局使用font-size=14px字体 ..... 更多请使用Firefox 查看 <p> 华盛顿大学和清华大学共同在 ...

  2. JS 页面加载触发事件 document.ready和window.onload的区别

    document.ready和onload的区别——JavaScript文档加载完成事件页面加载完成有两种事件: 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件): 二是onlo ...

  3. void与void之间没有隐式转换(纯属恶搞,请勿在意)

    强大的vs弹出了这个提示:.有没有觉得强大的vs不应该出现该提示. 但就是出现了. 看客,您知道怎么让vs弹出这个提示吗^~^

  4. extJs学习基础3 ajax与php交互

    extJs代码: <script src="build/ext-all.js"></script> <script src="build/p ...

  5. “Ceph浅析”系列之五——Ceph的工作原理及流程

    本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍.如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行.对于上层的部分,特别是RADOS GW和 ...

  6. ubuntu14.04完全卸载mysql

    1.删除 mysql1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 su ...

  7. [转]为什么我要用 Node.js? 案例逐一介绍

    原文地址:http://blog.jobbole.com/53736/ 介绍 JavaScript 高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样, ...

  8. git 冲突解决

    冲突文件的组成 "<<< HEAD"和 "====="之间的为主干内容 "=====" 和 ">>& ...

  9. git将本地代码 和服务器git@osc 上的代码 关联

    将本地代码 和服务器git@osc 上的代码 关联 要使用git 首先,你得安装一个git 下载 http://git-scm.com/downloads 安装完成后,需要简单的配置一下,打开 Git ...

  10. Hibernate @Formula 注解方式

    1.Formula的作用 Formula的作用就是用一个查询语句动态的生成一个类的属性 就是一条select count(*)...构成的虚拟列,而不是存储在数据库里的一个字段.用比较标准的说法就是: ...