mysql怎么使用now函数

mysql怎么使用now函数,第1张

加上圆括号直接使用就行了。

例如:

select now() as timeNow

select * from t1 where coltime <now()

MySQL中有5个函数需要计算当前时间的值:

NOW.返回时间,格式如:2012-09-23 06:48:28

CURDATE,返回时间的日期,格式如:2012-09-23

CURTIME,返回时间,格式如:06:48:28

UNIX_TIMESTAMP,返回时间整数戳,如:1348408108

SYSDATE,返回时间,格式和time()函数返回时间一样,但是有区别。

除了本身定义所返回的区别以外,另一个区别是:前四个函数都是返回基于语句的开始执行时间,而SYSDATE返回time的值。

通过比较,可以发现这两个函数的区别:

NOW()执行如下:

mysql>select now(),sleep(2),now()

+---------------------+----------+---------------------+

| now() | sleep(2) | now() |

+---------------------+----------+---------------------+

| 2012-09-23 06:54:29 |0 | 2012-09-23 06:54:29 |

+---------------------+----------+---------------------+

1 row in set (2.00 sec)

其返回的两个值是一样的,因为都是表示语句开始执行的时间。

SYSDATE执行如下:

mysql>select sysdate(),sleep(2),sysdate()

+---------------------+----------+---------------------+

| sysdate() | sleep(2) | sysdate() |

+---------------------+----------+---------------------+

| 2012-09-23 06:55:00 |0 | 2012-09-23 06:55:02 |

+---------------------+----------+---------------------+

1 row in set (2.01 sec)

也正因为有这个区别,我们一般在执行语句的时候,都是用NOW(),因为SYSDATE获取当时实时的时间,这有可能导致主库和从库是执行的返回值是不一样的,导致主从数据不一致。

其上其它函数执行如下:

mysql>select now(),sysdate(),curdate(),curtime(),unix_timestamp()\G

*************************** 1. row ***************************

now(): 2012-09-23 07:00:05

sysdate(): 2012-09-23 07:00:05

curdate(): 2012-09-23

curtime(): 07:00:05

unix_timestamp(): 1348408805

1 row in set (0.00 sec)

MySQL获得当前日期+时间(date + time)函数sysdate() :

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。

如下实例:

mysql>select now(), sleep(3), now()

+---------------------+----------+---------------------+

| now() | sleep(3) | now() |

+---------------------+----------+---------------------+

| 2015-04-12 16:00:00 | 0 | 2015-04-12 16:00:00 |

+---------------------+----------+---------------------+

mysql>select sysdate(), sleep(3), sysdate()

+---------------------+----------+---------------------+

| sysdate() | sleep(3) | sysdate() |

+---------------------+----------+---------------------+

| 2015-04-12 16:01:16 | 0 | 2015-04-12 16:01:19 |

+---------------------+----------+---------------------+

可以看到,虽然中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。MySQL Manual 中是这样描述 sysdate() 的:Return the time at which the function executes。

sysdate() 日期时间函数,一般情况下很少用到。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5908758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存