--curdate()返回当前日期
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2011-01-01 |
+------------+
1 row in set (0.00 sec)
--curtime()返回当前时间
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 09:23:15 |
+-----------+
1 row in set (0.00 sec)
--now()返回当前的时间和日期
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2011-01-01 09:23:25 |
+---------------------+
1 row in set (0.00 sec)
--unix_timestamp 返回日期date 的unix时间戳
mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
| 1293845026 |
+-----------------------+
1 row in set (0.00 sec)
--from_unixtime()返回unix时间戳的日期值
mysql> select from_unixtime(unix_timestamp(now()));
+--------------------------------------+
| from_unixtime(unix_timestamp(now())) |
+--------------------------------------+
| 2011-01-01 09:24:17 |
+--------------------------------------+
1 row in set (0.00 sec)
--week(date)返回日期date为这一年的第几周
--year(date)返回日期date 的年
mysql> select week(now()),year(now());
+-------------+-------------+
| week(now()) | year(now()) |
+-------------+-------------+
| 0 | 2011 |
+-------------+-------------+
1 row in set (0.01 sec)
--hour(time)--返回time的小时
--minute(time)--返回time的分钟
mysql> select hour(curtime()) ,minute(curtime());
+-----------------+-------------------+
| hour(curtime()) | minute(curtime()) |
+-----------------+-------------------+
| 9 | 25 |
+-----------------+-------------------+
1 row in set (0.00 sec)
--monthname(date)--返回date的月份
mysql> select monthname(now());
+------------------+
| monthname(now()) |
+------------------+
| January |
+------------------+
1 row in set (0.01 sec)
--date_format(date,fmt) 返回按照字符fmt格式的date值
mysql> select date_format(now(),'%M,%D,%Y');
+-------------------------------+
| date_format(now(),'%M,%D,%Y') |
+-------------------------------+
| January,1st,2011 |
+-------------------------------+
1 row in set (0.00 sec)
--date_add(date, interval exp type) 返回一个日期或时间值加上一个时间间隔的时间值。
mysql> select now() current,date_add(now(), interval 31 day ) after31days;
+---------------------+---------------------+
| current | after31days |
+---------------------+---------------------+
| 2011-01-01 09:27:41 | 2011-02-01 09:27:41 |
+---------------------+---------------------+
1 row in set (0.01 sec)
mysql> select now() current,date_add(now(), interval -31 day ) before31days ,date_add(now(), interval '-a_-2' year_month) after_oneyear_2month;
+---------------------+---------------------+----------------------+
| current | before31days | after_oneyear_2month |
+---------------------+---------------------+----------------------+
| 2011-01-01 09:29:32 | 2010-12-01 09:29:32 | 2010-11-01 09:29:32 |
+---------------------+---------------------+----------------------+
1 row in set (0.00 sec)
--datediff(date1,date2)从起始时间date1到结束时间date2之间的天数
mysql> select datediff('2007-09-15',now()) begin, datediff('2011-06-25',now()) end;
+-------+------+
| begin | end |
+-------+------+
| -1204 | 175 |
+-------+------+
1 row in set (0.00 sec)
--计算从我上大学到现在的天数,和现在到我离开学校的天数。
mysql> select abs(datediff('2007-09-15',now())) begin_days, datediff('2011-06-25',now())
end_days;
+------------+----------+
| begin_days | end_days |
+------------+----------+
| 1204 | 175 |
+------------+----------+
1 row in set (0.00 sec)
附录:mysql中的时间格式:
说明符 说明
%a 工作日的缩写名称 (Sun..Sat)
%b 月份的缩写名称 (Jan..Dec)
%c 月份,数字形式(0..12)
%D 带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, ...)
%d 该月日期, 数字形式 (00..31)
%e 该月日期, 数字形式(0..31)
%f 微秒 (000000..999999)
%H 小时(00..23)
%h 小时(01..12)
%I 小时 (01..12)
%i 分钟,数字形式 (00..59)
%j 一年中的天数 (001..366)
%k 小时 (0..23)
%l 小时 (1..12)
%M 月份名称 (January..December)
%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位数)
%%‘%’文字字符