mysql日期函数的使用
时间:2013-10-29 09:10:22 作者:beebol 标签: 分类: Mysql
如下是DAYOFWEEK和WEEKDAY的区别:
mysql> SELECT DAYOFWEEK('2013-10-29'); +-------------------------+ | DAYOFWEEK('2013-10-29') | +-------------------------+ | 3 | +-------------------------+ 1 row in set (0.00 sec) mysql> SELECT WEEKDAY('2013-10-29'); +-----------------------+ | WEEKDAY('2013-10-29') | +-----------------------+ | 1 | +-----------------------+1 row in set (0.00 sec) 1 row in set (0.00 sec)
DAYOFWEEK的星期索引是(1 = Sunday, 2 = Monday, ... 7 = Saturday),所以如上是3,表示是星期二。
WEEKDAY的星期索引是(6 = Sunday, 0 = Monday, ... 5= Saturday),所以如上是1,表示是星期二。
mysql> SELECT DAYOFMONTH('2013-10-29'); +--------------------------+ | DAYOFMONTH('2013-10-29') | +--------------------------+ | 29 | +--------------------------+1 row in set (0.00 sec) 1 row in set (0.00 sec)
DAYOFMONTH返回一个月的第几天。范围是1-31
mysql> SELECT DAYOFYEAR('2013-10-29'); +-------------------------+ | DAYOFYEAR('2013-10-29') | +-------------------------+ | 302 | +-------------------------+1 row in set (0.00 sec) 1 row in set (0.00 sec)
DAYOFYEAR是返回一年的第几天,范围是1-366
mysql> SELECT MONTH('2013-10-29'); +---------------------+ | MONTH('2013-10-29') | +---------------------+ | 10 | +---------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYNAME('2013-10-29'); +-----------------------+ | DAYNAME('2013-10-29') | +-----------------------+ | Tuesday | +-----------------------+ 1 row in set (0.00 sec) mysql> SELECT MONTHNAME('2013-10-29'); +-------------------------+ | MONTHNAME('2013-10-29') | +-------------------------+ | October | +-------------------------+ 1 row in set (0.00 sec) mysql> SELECT QUARTER('2013-10-29'); +-----------------------+ | QUARTER('2013-10-29') | +-----------------------+ | 4 | +-----------------------+1 row in set (0.00 sec) 1 row in set (0.00 sec)
MONTH返回日期的月份。范围是1-31,如果是错误日期将返回NULL
DAYNAME返回日期的星期英文名字,如Tuesday
MONTHNAME返回日期的月份英文名字,如October
QUARTER返回日期所在的季度,如2013-10-29是Q4季度
mysql> SELECT PERIOD_ADD(201310,1); +----------------------+ | PERIOD_ADD(201310,1) | +----------------------+ | 201311 | +----------------------+1 row in set (0.00 sec) 1 row in set (0.00 sec)
PERIOD_ADD(P,N)增加N个月到时期P(格式为YYMM 或YYYYMM)中以YYYYMM 格式返回值。注意,期间参数P 不是一个日期值。
mysql> SELECT PERIOD_DIFF(1310,1209); +------------------------+ | PERIOD_DIFF(1310,1209) | +------------------------+ | 13 | +------------------------+1 row in set (0.00 sec) 1 row in set (0.00 sec)
PERIOD_DIFF(P1,P2)P1与P2之间的月数,P1和p2不是一个日期。
DATE_FORMAT(date,format)
依照 format 字符串格式化 date 值。下面的修饰符可被用于 format 字符串中: 修饰符 含义
%M 月的名字 (January..December)
%W 星期的名字 (Sunday..Saturday)
%D 有英文后缀的某月的第几天 (0th, 1st, 2nd, 3rd, etc.)
%Y 年份,数字的,4 位
%y 年份,数字的,2 位
%X 周值的年份,星期日是一个星期的第一天,数字的,4 位,与 ‘%V’ 一同使用
%x 周值的年份,星期一是一个星期的第一天,数字的,4 位,与 ‘%v’ 一同使用
%a 缩写的星期名 (Sun..Sat)
%d 月份中的天数,数字的 (00..31)
%e 月份中的天数,数字的 (0..31)
%m 月,数字的 (00..12)
%c 月,数字的 (0..12)
%b 缩写的月份名 (Jan..Dec)
%j 一年中的天数 (001..366)
%H 小时 (00..23)
%k 小时 (0..23)
%h 小时 (01..12)
%I 小时 (01..12)
%l 小时 (1..12)
%i 分钟,数字的 (00..59)
%r 时间,12 小时 (hh:mm:ss [AP]M)
%T 时间,24 小时 (hh:mm:ss)
%S 秒 (00..59)
%s 秒 (00..59)
%p AM 或 PM
%w 一周中的天数 (0=Sunday..6=Saturday)
%U 星期 (00..53),星期日是一个星期的第一天
%u 星期 (00..53),星期一是一个星期的第一天
%V 星期 (01..53),星期日是一个星期的第一天。与 ‘%X’ 一起使用
%v 星期 (01..53),星期一是一个星期的第一天。与 ‘%x’ 一起使用
%% 一个字母 “%”