bitsCN.com
解读mysql时间函数sysdate()和now()
NOW()
返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。
mysql> SELECT NOW();
-> '1997-12-15 23:50:26'
mysql> SELECT NOW() 0;
-> 19971215235026
在一个存储程序或触发器内, NOW() 返回一个常数时间,该常数指示了该程序或触发语句开始执行的时间。这同SYSDATE()的运行有所不同。
SYSDATE()
返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS, 具体格式根据函数是否用在字符串或数字语境而定。
在一个存储程序或触发器中, SYSDATE()返回其执行的时间, 而非存储成都或触发语句开始执行的时间。这个NOW()的运作有所不同。
我的理解:
now()是应用向mysql服务器发起执行语句时(无论是发送的sql还是存储过程的名字),now()时间已经产生。
调用在该存储过程中或者sql中调用now(),即为调用该变量。
而sysdate()函数是每次实时去取的
在我们公司的业务中,由于禁止使用存储过程,显然无论使用sysdate()还是now()都能够满足业务需求。当然,考虑到sysdate要实时取时间,我认为now()是比较推荐的.
实践是检验真理的唯一标准:
1.存储过程:
BEGIN
select now(),sysdate();
select sleep(3) ;
select now(),sysdate();
END
执行结果:
mysql> call test;
--------------------- ---------------------
| now() | sysdate() |
--------------------- ---------------------
| 2011-01-21 11:22:58 | 2011-01-21 11:22:58 |
--------------------- ---------------------
1 row in set (0.00 sec)
----------
| sleep(3) |
----------
| 0 |
----------
1 row in set (3.00 sec)
--------------------- ---------------------
| now() | sysdate() |
--------------------- ---------------------
| 2011-01-21 11:23:01 | 2011-01-21 11:23:01 |
--------------------- ---------------------
1 row in set (3.01 sec)
Query OK, 0 rows affected (3.01 sec)
通过如上结果来看,第一个now()跟第二个now()执行结果不一致;对存储过程之内的now()函数,并非取自存储过程执行的开始时间。
2.sql语句测试:
mysql> select now(),sleep(3),now();
--------------------- ---------- ---------------------
| now() | sleep(3) | now() |
--------------------- ---------- ---------------------
| 2011-01-21 11:25:45 | 0 | 2011-01-21 11:25:45 |
--------------------- ---------- ---------------------
1 row in set (3.00 sec)
评:now()函数,每次取语句开始的执行时间.
mysql> select sysdate(),sleep(3),sysdate();
--------------------- ---------- ---------------------
| sysdate() | sleep(3) | sysdate() |
--------------------- ---------- ---------------------
| 2011-01-21 11:26:44 | 0 | 2011-01-21 11:26:47 |
--------------------- ---------- ---------------------
1 row in set (3.02 sec)
评:sysdate() 每次会取实际的时间。
综合上面的结果:
1.在公司绝大部分业务中now()函数已经够用,特别是gmt_create,gmt_modified字段的时间,无疑要用now()
2.sysdate()用在需要每个字段执行的时候实时取时间的。
3.mysql的字段是从左到右依次执行。
bitsCN.com

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版
视觉化网页开发工具