日期:2014-05-16  浏览次数:20806 次

MySql常用(二、日期)函数
5.3日期和时间函数
函数名称功能
NOW()返回当前的日期和时间
SYSDATE()
UTC_TIMESTAMP()
UTC_DATE()
UTC_TIME()
CURDATE()以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。
CURTIME()以'HH:MM:SS'或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。
YEAR(date)返回日期date的年份。
QUARTER(date)返回date一年中的季度,范围1到4。
MONTH(date)返回date的月份,范围1到12。
DATE(date)返回date的日期。
HOUR(time)返回time的小时。
MINUTE(time)返回time的分钟。
SECOND(time)返回time的秒数。
MONTHNAME(date)返回date的月份英文名字。
DAYNAME(date)返回date的星期英文名字。
DAYOFMONTH(date)返回date的月份中日期,在1到31范围内。
DAYOFYEAR(date)返回date在一年中的日数, 在1到366范围内。
DAYOFWEEK(date)返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)
WEEKDAY(date)返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
WEEK(date)返回日期date为一年中的的第几周,对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。
WEEK(date,first)返回日期date为一年中的的第几周,2个参数形式的WEEK()允许你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,从星期一开始。
UNIX_TIMESTAMP(date)如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME 字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。
FROM_UNIXTIME(unix_timestamp,format)返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。
DATE_FORMAT(date, fmt)返回按字符串fmt格式化日期date的值
TIME_FORMAT(time,format)类DATE_FORMAT(),但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。
TO_DAYS(date)给定一个日期date, 返回一个天数 (从年份0开始的天数 )。
DATE_ADD(略)(date, INTERVAL expr type)返回一个日期或时间值加上一个日期间隔的时间值
DATE_SUB(略)(date,INTERVAL expr type))返回一个日期或时间值减去一个日期间隔的时间值
DATEDIFF(expr, expr2)返回起始时间expr和结束时间expr2之间的天数
TIMESTAMPADD(略)(interval, int_expr, datetime_expr)将整型表达式int_expr添加到日期或日期时间表达式datetime_expr中。 int_expr的单位被时间间隔参数interval给定,该参数必须是以下值的其中一个: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、MONTH、 QUARTER或 YEAR。
TIMESTAMPDIFF(略)(interval,datetime_expr1,datetime_expr2)返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval参数给出。


举例结果
select NOW();2012-06-02 12:56:23(参见CURDATE()举例的+0略)
select SYSDATE() ;2012-06-02 12:54:54(参见CURDATE()举例的+0)
select DAYOFWEEK('2012-05-31');5(星期四)
select WEEKDAY('2012-05-31');3(星期四)
select CURDATE(); 2012-06-02
select CURDATE() + 0; 20120602
select YEAR('2012-06-02');2012
select QUARTER('2012-06-02');2
select MONTH('2012-06-02');6
select DATE(now());2012-06-02
select HOUR('10:05:03');10
selec