一、MySQL 获得当前日期时间函数
1.1 获得当前日期+时间(date + time)函数:now()
mysql> select now(); +———————+ | now() | +———————+ | 2013-02-26 10:28:16 | +———————+
除了now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
mysql> select current_timestamp(); +———————+ | current_timestamp() | +———————+ | 2013-02-26 10:29:36 | +———————+ mysql> select current_timestamp; +———————+ | current_timestamp | +———————+ | 2013-02-26 10:29:43 | +———————+ mysql> select localtime(); +———————+ | localtime() | +———————+ | 2013-02-26 10:29:53 | +———————+ mysql> select localtime; +———————+ | localtime | +———————+ | 2013-02-26 10:29:59 | +———————+ mysql> select localtimestamp(); +———————+ | localtimestamp | +———————+ | 2013-02-26 10:30:11 | +———————+ mysql> select localtimestamp; +———————+ | localtimestamp() | +———————+ | 2013-02-26 10:30:17 | +———————+
这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。
1.2 获得当前日期+时间(date + time)函数:sysdate()
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了:
mysql> select now(), sleep(3), now(); +———————+———-+———————+ | now() | sleep(3) | now() | +———————+———-+———————+ | 2013-02-26 10:33:10 | 0 | 2013-02-26 10:33:10 | +———————+———-+———————+ mysql> select sysdate(), sleep(3), sysdate(); +———————+———-+———————+ | sysdate() | sleep(3) | sysdate() | +———————+———-+———————+ | 2013-02-26 10:33:23 | 0 | 2013-02-26 10:33:26 | +———————+———-+———————+
可以看到,虽然中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3
秒。MySQL Manual 中是这样描述 sysdate() 的:Return the time at which the function
executes。
sysdate() 日期时间函数,一般情况下很少用到。
1.3 获得当前日期(date)函数:curdate()
mysql> select curdate(); +————+ | curdate() | +————+ | 2013-02-26 | +————+
其中,下面的两个日期函数等同于 curdate():
mysql> select current_date(); +—————-+ | current_date() | +—————-+ | 2013-02-26 | +—————-+ mysql> select current_date; +————–+ | current_date | +————–+ | 2013-02-26 | +————–+
1.4 获得当前时间(time)函数:curtime()
mysql> select curtime(); +———–+ | curtime() | +———–+ | 10:36:31 | +———–+
其中,下面的两个时间函数等同于 curtime():
mysql> select current_time(); +—————-+ | current_time() | +—————-+ | 10:36:40 | +—————-+
mysql> select current_time; +————–+ | current_time | +————–+ | 10:36:44 | +————–+
1.5 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp()
mysql> select utc_timestamp(), utc_date(), utc_time(),