1.1 获得当前日期+时间(date + time)函数:now()
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-09-01 15:22:09 |
+---------------------+
1 row in set (0.01 sec)
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。如下:
mysql> select now(), sleep(3), now();
+---------------------+----------+---------------------+
| now() | sleep(3) | now() |
+---------------------+----------+---------------------+
| 2009-09-01 15:39:53 | 0 | 2009-09-01 15:39:53 |
+---------------------+----------+---------------------+
1 row in set (3.05 sec)
mysql> select sysdate(), sleep(3), sysdate();
+---------------------+----------+---------------------+
| sysdate() | sleep(3) | sysdate() |
+---------------------+----------+---------------------+
| 2009-09-01 15:41:10 | 0 | 2009-09-01 15:41:13 |
+---------------------+----------+---------------------+
1 row in set (3.00 sec)
中间 sleep 2秒,但是 curtime 值相同。
4. 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp()
mysql> select utc_date(), utc_time(), utc_timestamp(), sysdate();
+------------+------------+---------------------+---------------------+
| utc_date() | utc_time() | utc_timestamp() | sysdate() |
+------------+------------+---------------------+---------------------+
| 2009-09-01 | 07:57:01 | 2009-09-01 07:57:01 | 2009-09-01 15:57:01 |
+------------+------------+---------------------+---------------------+
1 row in set (0.02 sec)
因为我国位于东八时区,所以本地时间 = UTC 时间 + 8 小时。
now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。
MySQL Manual 中是这样描述 sysdate() 的:Return the time at which the function executes。
2. 获得当前日期 curdate()
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2009-09-01 |
+------------+
1 row in set (0.00 sec)
3. 获得当前时间 curtime()
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 15:46:09 |
+-----------+
1 row in set (0.00 sec)
curtime() 与 now() 类似,执行开始时值就得到了, 例如:
mysql> select curtime(),sleep(2),curtime();
+-----------+----------+-----------+
| curtime() | sleep(2) | curtime() |
+-----------+----------+-----------+
| 15:46:33 | 0 | 15:46:33 |
+-----------+----------+-----------+
1 row in set (2.00 sec)
1.2 获得当前日期+时间(date + time)函数:sysdate()
mysql> select sysdate();
+---------------------+
| sysdate() |
+---------------------+
| 2009-09-01 15:34:59 |
+---------------------+
1 row in set (0.03 sec)