`

mysql中时间函数的说明,挺有用的

阅读更多

接触过sql的人都知道,sql里面有一些内置函数,比如count(),sum(),max(),min()等。今天先学习一下mysql中一些日期函数:

 

函数 描述
NOW() 返回当前的日期和时间
CURDATE() 返回当前的日期
CURTIME() 返回当前的时间
DATE() 提取日期或日期/时间表达式的日期部分
EXTRACT() 返回日期/时间按的单独部分
DATE_ADD() 给日期添加指定的时间间隔
DATE_SUB() 从日期减去指定的时间间隔
DATEDIFF() 返回两个日期之间的天数
DATE_FORMAT() 用不同的格式显示日期/时间

 

NOW(),CURDATE(),CURTIME(),在我看来一般用于建表语句中deflaut中,来生成当前时间。

DATE(date)则是提取参数中的日期部分。比如:DATE('2011-06-20 14:22:22') 输出 2011-06-20

EXTRACT(unit FROM date)

unit的值如下:

 

Unit 值
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

 

DATE_ADD(date,INTERVAL num  type)

type也是上述表格中的值,num可以为负。

 

DATE_SUB()同上,如果num为负值,则是加上该数值。

 

DATEDIFF(date1,date2) 返回的是第一个日期比第二个日期多的天数,如果第二个日期大于第一个日期,则返回负数。

比如DATEDIFF('2008-12-31','2008-11-30')  返回31 DATEDIFF('2008-11-30','2008-12-31') 则返回-31

 

DATE_FORMAT(date,format)

format可以为如下值,及其组合:

格式 描述
%a                              缩写星期名
%b                              缩写月名
%c                             月,数值
%D                             带有英文前缀的月中的天
%d                             月的天,数值(00-31)
%e                             月的天,数值(0-31)
%f                             微秒
%H                             小时 (00-23)
%h                             小时 (01-12)
%I                             小时 (01-12)
%i                             分钟,数值(00-59)
%j                             年的天 (001-366)
%k                             小时 (0-23)
%l                             小时 (1-12)
%M                             月名
%m                             月,数值(00-12)
%p                             AM 或 PM
%r                             时间,12-小时(hh:mm:ss AM 或 PM)
%S                             秒(00-59)
%s                             秒(00-59)
%T                             时间, 24-小时 (hh:mm:ss)
%U                             周 (00-53) 星期日是一周的第一天
%u                             周 (00-53) 星期一是一周的第一天
%V                             周 (01-53) 星期日是一周的第一天,与 %X 使用
%v                             周 (01-53) 星期一是一周的第一天,与 %x 使用
%W                             星期名
%w                             周的天 (0=星期日, 6=星期六)
%X                             年,其中的星期日是周的第一天,4 位,与 %V 使用
%x                             年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y                             年,4 位
%y                             年,2 位

 

DATE_FORMAT()可以输出我们想要的格式的日期,比如:

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')

对应的结果为:

 

Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635

 

最近坐一个group by的sql语句的时候,要对日期进行每月的group by,所以去百度上查了下mysql的日期函数,group by 中就可以代入上述函数进行group by,缺点呢,大数据量下应该非常耗资源。

 

 

分享到:
评论

相关推荐

    MySQL中文参考手册.chm

    7.4.4 逻辑运算 7.4.5 比较运算符 7.4.6 字符串比较函数 7.4.7 类型转换运算符 7.4.8 控制流函数 7.4.9 数学函数 7.4.10 字符串函数 7.4.11 日期和时间函数 7.4.12 ...

    MySQL中文参考手册

    o 1.8 有用的MySQL相关链接 * 2 MySQL 邮件列表及如何提问或报告错误 o 2.1 MySQL邮件列表 o 2.2 提问或报告错误 o 2.3 怎样报告错误或问题 o 2.4 在邮件列表上回答问题的指南 * 3 MySQL的许可证和技术支持 ...

    MYSQL

    7.4.7 类型转换运算符 7.4.8 控制流函数 7.4.9 数学函数 7.4.10 字符串函数 7.4.11 日期和时间函数 7.4.12 其他函数 7.4.13 与GROUP BY子句一起使用的函数 7.5 CREATE DATABASE ...

    PHP和MySQL Web开发第4版pdf以及源码

    2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好...

    PHP和MySQL WEB开发(第4版)

    2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式...

    PHP和MySQL Web开发第4版

    2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好...

    java高性能数据库连接池V5.0

    数据库连接池,是一种相当实用的应用程序。它可以保存、维护及创建用户所需的数据库连接。从而使得用户得到一个连接的时间降低90%以上。大大提升了数据库访问的反应时间。...在网站后后实际应用中,发现了一些bug.

    PHP基础教程 是一个比较有价值的PHP新手教程!

    所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样...

    [Objective-c程序设计].杨正洪等.扫描版

    第14章讲述了Objective-C++和访问Mysql数据库的编程知识。 第1章 启程.1 1.1 预备知识1 1.2 历史背景1 1.3 内容简介2 1.4 小结3 第2章 对C的扩展4 2.1 最简单的Objective-C程序4 2.2 解构HelloObjective-C程序7 ...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩充性。...

    基于J2EE框架的个人博客系统项目毕业设计论...

    在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩充性。...

    jpivot学习总结.doc

    1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用当中你需要下面的这些文件: /wcf/** /jpivot/** /WEB-INF/wcf/** /WEB-INF/jpivot/** /WEB-INF/lib/** 最后你还需要对比 jpivot.war 里的 web.xml ...

Global site tag (gtag.js) - Google Analytics