最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

解读mysql时间函数sysdate()和now()_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:22:43
文档

解读mysql时间函数sysdate()和now()_MySQL

解读mysql时间函数sysdate()和now()_MySQL:bitsCN.com 解读mysql时间函数sysdate()和now() NOW() 返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。 mysql> SELECT NOW(); -> 
推荐度:
导读解读mysql时间函数sysdate()和now()_MySQL:bitsCN.com 解读mysql时间函数sysdate()和now() NOW() 返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。 mysql> SELECT NOW(); -> 

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时间函数sysdate()和now()_MySQL

解读mysql时间函数sysdate()和now()_MySQL:bitsCN.com 解读mysql时间函数sysdate()和now() NOW() 返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。 mysql> SELECT NOW(); -> 
推荐度:
标签: 时间 日期 函数
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top