欢迎来到天天文库
浏览记录
ID:11088745
大小:36.00 KB
页数:4页
时间:2018-07-09
《mysql那些与日期和时间相关的函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MySQL那些与日期和时间相关的函数2012年09月24日00:05it168网站原创作者:姜承尧编辑:王玉圆评论:0条 【IT168技术】日期函数可能是比较常使用的一种函数。下面介绍一些最为常用的日期函数及一些容易忽略的问题。 1.NOW、CURRENT_TIMESTAMP和SYSDATE 这些函数都能返回当前的系统时间,它们之间有区别吗?先来看个例子。mysql>SELECTNOW(),CURRENT_TIMESTAMP(),SYSDATE()G;***************************1.row***************************
2、 NOW():2011-02-0420:35:04CURRENT_TIMESTAMP():2011-02-0420:35:04 SYSDATE():2011-02-0420:35:04 从上面的例子看来,3个函数都是返回当前的系统时间,再来看下面这个例子:mysql>SELECT -> NOW(), -> CURRENT_TIMESTAMP(), -> SYSDATE(), -> SLEEP(2), -> NOW(), -> CURRENT_TIMESTAMP(), -> SYSDA
3、TE()G***************************1.row*************************** NOW():2011-11-2921:04:49CURRENT_TIMESTAMP():2011-11-2921:04:49 SYSDATE():2011-11-2921:04:49 SLEEP(2):0 NOW():2011-11-2921:04:49CURRENT_TIMESTAMP():2011-11-2921:04:49 SYSDATE():2011-11-
4、2921:04:511rowinset(2.00sec) 在上面这个例子中人为地加入了SLEEP函数,让其等待2秒,这时可以发现SYSDATE返回的时间和NOW及CURRENT_TIMESTAMP是不同的,SYSDATE函数慢了2秒。究其原因是这3个函数有略微区别: CURRENT_TIMESTAMP是NOW的同义词,也就是说两者是相同的。 SYSDATE函数返回的是执行到当前函数时的时间,而NOW返回的是执行SQL语句时的时间。 因此在上面的例子中,两次执行SYSDATE函数返回不同的时间是因为第二次调用执行该函数时等待了前面SLEEP函数2秒。而对于NOW函数,不
5、管是在SLEEP函数之前还是之后执行,返回的都是执行这条SQL语句时的时间。 2.时间加减函数 先来看一个例子。mysql>SELECTNOW(),NOW()+0G;***************************1.row*************************** NOW():2011-02-0420:46:33NOW()+0:20110204204633.0000001rowinset(0.00sec) 可以看到,NOW()函数可以返回时间,也可以返回一个数字,就看用户如何使用。如果相对当前时间进行增加或减少,并不能直接加上或减去一个数字,而需
6、要使用特定的函数,如DATE_ADD或DATE_SUB,前者表示增加,后者表示减少。其具体的使用方法有DATE_ADD(date,INTERVALexprunit)和DATE_SUB(date,INTERVALexprunit),示例如下:mysql>SELECTNOW()ASnow, DATE_ADD(now(),INTERVAL1DAY)AStomorrow, DATE_SUB(now(),INTERVAL1DAY)ASyesterdayG;***************************1.row***********************
7、**** now:2011-02-0420:53:25tomorrow:2011-02-0520:53:25yesterday:2011-02-0320:53:251rowinset(0.00sec) 其中expr值可以是正值也可以是负值,因此可以使用DATE_ADD函数来完成DATE_SUB函数的工作,例如:mysql>SELECTNOW()ASnow, DATE_ADD(NOW(),INTERVAL1DAY)AStomorrow, DATE_ADD(NOW(),INTER
此文档下载收益归作者所有