首页 » 数据库技术

MySQL 的时间函数 大全

   发表于:数据库技术评论 (1)   热度:1484

一、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 

(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。