MySQL 的时间函数 大全
一、MySQL获得当前日期时间函数
1.1  获得当前日期+ 时间(date  +  time)函数:now() mysql 
>  select  now(); 
+ -- ---------------- ---+ 
|  now()                | 
+ -- -------------------+ 
|  2008 - 08 - 08  22 : 20 : 46  | 
+ -- --- ----------------+ 
除了now()函数能获得当前的日期时间外,MySQL中还有下面的函数:
 current_timestamp () 
, current_timestamp 
,localtime() 
,localtime 
, localtimestamp     --  (v4.0.6) 
,localtimestamp()   --  (v4.0.6) 
这些日期时间函数,都等同于now()。鉴于now()函数简短易记,建议总是使用now()来替代上面列出的函数。
1.2  获得当前日期+ 时间(date  +  time)函数:sysdate() sysdate()日期时间函数跟now()类似,不同之处在于:now()在执行开始时值就得到了, sysdate()在函数执行时动态得到值。看下面的例子就明白了:mysql 
>  select  now(), sleep( 3 ), now(); 
+ -- -------------------+--- -------+---------------------+ 
|  now()                |  sleep( 3 )  |  now()                | 
+ -- --- ----------------+----------+---------------------+ 
|  2008 - 08 - 08  22 : 28 : 21  |         0  |  2008 - 08 - 08  22 : 28 : 21  | 
+ -- -------------------+-- --------+---------------------+ 
mysql >  select  sysdate(), sleep( 3 ), sysdate(); 
+ -- -------------------+----------+------------------- --+ 
|  sysdate()            |  sleep( 3 )  |  sysdate()            | 
+ -- -------------------+---------- +---------------------+ 
|  2008 - 08 - 08  22 : 28 : 41  |         0  |  2008 - 08 - 08  22 : 28 : 44  | 
+ - - -------------------+----------+------------------ ---+ 
可以看到,虽然中途sleep  3  秒,但now()函数两次的时间值是相同的; sysdate()函数两次得到的时间值相差  3  秒。MySQL Manual中是这样描述sysdate()的:Return  the time at which the  function  executes。sysdate()日期时间函数,一般情况下很少用到。
2 .获得当前日期(date)函数:curdate() mysql 
>  select  curdate(); 
+ -- ----------+ 
|  curdate()   | 
+ -- -------- --+ 
|  2008 - 08 - 08  | 
+ -- ----------+ 
其中,下面的两个日期函数等同于curdate():
 current_date () 
, current_date 
3 .获得当前时间(time )函数:curtime() mysql 
>  select  curtime(); 
+ -- ---------+ 
|  curtime()  | 
+ -- ---------+ 
|  22 : 41 : 30   | 
+ -- ---------+ 
其中,下面的两个时间函数等同于curtime():
 current_time () 
, current_time 
4 .获得当前UTC日期时间函数:utc_date(), utc_time(), utc_timestamp() mysql 
>  select  utc_timestamp(), utc_date(), utc_time(), now() 
+ -- -------------------+------ ------+------------+---------------------+ 
|  utc_timestamp()      |  utc_date()  |  utc_time()  |  now()                | 
+ -- -------------------+------------+----- -------+---------------------+ 
|  2008 - 08 - 08  14 : 47 : 11  |  2008 - 08 - 08  |  14 : 47 : 11    |  2008 - 08 - 08  22: 47 : 11  | 
+ -- -------------------+------------ +------------+---------------------+ 
因为我国位于东八时区,所以本地时间  =  UTC时间  +  8  小时。UTC时间在业务涉及多个国家和地区的时候,非常有用。
二、MySQL日期时间Extract(选取)函数。
1 .选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒
set  @dt  =  ' 2008-09-10 07:15:30.123456 ' ; 
select  date( @ dt );         --  2008-09-10 
select  time( @dt );         --  07:15:30.123456 
select  year ( @dt );         --  2008 
select  quarter( @dt );      --  3 
select  month ( @dt ) ;        --  9 
select  week( @dt );         --  36 
select  day ( @dt );          --  10 
select  hour( @dt );         --  7 
select  minute( @dt );       --  15 
select  second( @dt ) ;       --  30