在MySQL使用中,总要用到一些时间函数,其中就有now和sysdate,用来代表当前时间。
但是随着开发的深入,就要去多了解一些了,要判断在哪些场景去使用哪一种时间函数。
now函数是代表SQL语句开始执行的时间,sysdate函数则是代表SQL执行时的动态实时时间。
如果在sql中使用sleep函数来睡眠几秒的话,就能看得出来,now函数其实前后两次的执行结果是完全一样的。
但是sysdate函数前后两次得到的时间却是不同的。
可通过select now(), sleep(3), now(); 来查询出now函数获取的当前时间是否受sleep函数影响。
此SQL的结果获取的当前时间是一样的,因为now函数是在SQL开始执行之前就已经获取到了,所以无论在SQL执行期间停顿几秒都不会影响的。
也可以通过select sysdate(), sleep(3), sysdate(); 来查询出sysdate函数获取的当前时间是否受sleep函数影响。
此SQL的结果就不同了,如果你执行一些了上述SQL,便会得到上图中的结果了。
很明显,前后的时间差别了3秒,这就说明了,sysdate其实是获取的当前SQL执行时候的动态时间。
每天记录一下自己上班需要百度的问题,永远相信美好的事情即将发生。