MySQL sysdate()函数

转载自  MySQL sysdate()函数

MySQL SYSDATE函数介绍

下面说明了SYSDATE()函数的语法:

SYSDATE(fsp);

如果函数用于字符串上下文或YYYYMMDDHHMMSS格式,则SYSDATE()函数将返回当前日期时间,格式为“YYYY-MM-DD HH:MM:SS”的值,以防在函数用于数字上下文。

SYSDATE()函数接受一个可选参数fsp,它确定结果是否应该包含从06的小数秒精度。

请参见以下示例 -

mysql> SELECT SYSDATE();
+---------------------+
| SYSDATE()           |
+---------------------+
| 2017-08-10 20:43:16 |
+---------------------+
1 row in set

如果您传递fsp参数,则结果将包括小数秒精度,如以下示例所示:

mysql> SELECT SYSDATE(3);
+-------------------------+
| SYSDATE(3)              |
+-------------------------+
| 2017-08-10 20:43:46.985 |
+-------------------------+
1 row in set

 

SYSDATE 与 NOW 比较

请考虑以下示例 -

mysql> SELECT SYSDATE(), NOW();
+---------------------+---------------------+
| SYSDATE()           | NOW()               |
+---------------------+---------------------+
| 2017-08-10 20:44:38 | 2017-08-10 20:44:38 |
+---------------------+---------------------+
1 row in set

似乎SYSDATE()和NOW()函数都返回一个相同的值,它是执行语句时当前日期和时间。

然而,SYSDATE()函数实际上返回执行时的时间,而NOW()函数返回一个常量时间,该语句开始执行。

请参阅以下查询:

mysql> SELECT NOW(), SLEEP(5), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(5) | NOW()               |
+---------------------+----------+---------------------+
| 2017-08-10 20:46:51 |        0 | 2017-08-10 20:46:51 |
+---------------------+----------+---------------------+
1 row in set

在这个例子中,我们使用SLEEP()函数暂停查询5秒。 在同一个语句中,NOW()函数总是返回一个常量,它是语句开始的时间。

我们将NOW()函数更改为SYSDATE()函数:

mysql>  SELECT SYSDATE(), SLEEP(5), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(5) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2017-08-10 20:48:14 |        0 | 2017-08-10 20:48:19 |
+---------------------+----------+---------------------+
1 row in set

在同一个语句中,SYSDATE()函数返回反映SYSDATE()函数执行时间的不同时间值。

因为SYSDATE()函数是非确定性的,索引不能用于评估求值引用它的表达式。

为了演示这个,我们创建一个名为tests的表,并将一些数据插入到这个表中。

CREATE TABLE tests (id INT AUTO_INCREMENT PRIMARY KEY,t DATETIME UNIQUE
);INSERT INTO tests(t) 
WITH RECURSIVE times(t) AS
( SELECT now() - interval 1 YEAR tUNION ALL SELECT t + interval 1 hourFROM timesWHERE t < now() 
)
SELECT t
FROM times;

 

请注意,我们使用递归CTE来生成时间序列。 CTE从MySQL 8.0开始才有的功能。

因为t列有唯一索引,所以下列查询应该执行得很快:

SELECT id, t
FROMtests
WHEREt >= SYSDATE() - INTERVAL 1 DAY;

但是,需要15ms才能完成。让我们使用EXPLAIN语句来看看细节。

EXPLAIN SELECT id, t
FROMtests
WHEREt >= SYSDATE() - INTERVAL 1 DAY;

执行上面分析语句,得到类似以下结果 -

 

原来,MySQL必须扫描表中的所有行才能获取数据。该索引无法使用。

如果在查询中将SYSDATE()更改为NOW()函数:

SELECT id, t
FROMtests
WHEREt >= NOW() - INTERVAL 1 DAY;

使用NOW()函数,索引已被用于查询数据,如下面的EXPLAIN结果所示:

EXPLAIN SELECT id, t
FROMtests
WHEREt >= NOW() - INTERVAL 1 DAY;

 

请注意,MySQL为您提供了--sysdate-is-now选项,可以使SYSDATE()函数的行为与NOW()函数相同。

在本教程中,您已经了解了MySQL SYSDATE()函数以及在使用MySQL之前应该考虑的一些原因。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018蓝桥杯省赛---java---C---2(猴子分香蕉)

题目描述 思路分析 直接采用暴力破解&#xff0c;先限定范围&#xff0c;然后依次筛选出满足条件的情况。 代码实现 package TEST;public class Main {public static void main(String[] args) {for (int i 5; i < 10000; i) {int temp i;if (temp % 5 1) {temp temp…

纯前端JS实现人脸识别眨眨眼张张嘴案例

在不久之前我发布了一个案例&#xff0c;是java通过百度云人脸识别接口实现活体检测&#xff08;张张嘴和眨眨眼&#xff09;的案例&#xff0c;大家可以去看看&#xff1a;人脸识别活体检测之眨眨眼和张张嘴&#xff0c;今天我就抽空更新一下纯JS的活体检测吧。 首先给大家看一…

年度大片:StackOverflow 2017开发者调查报告

Stack Overflow 发布了 2017 开发者调查报告&#xff0c;此次有超过 64,000 名开发人员参与调查&#xff0c;分别对其技能、工具、学习趋势等数据进行了统计&#xff0c;现将其中一些有趣的数据和趋势撷取出来分享给大家。 一、开发角色 开发类型 大约有四分之三的受访者是 we…

oracle导库需要删除原始库,导入dmp文件时,需要删除原有ORACLE数据库实例

导入dmp文件时&#xff0c;对于已存在的数据库实例及表处理方式&#xff1a;删除实例。1.以管理员身份登录sqlplus / as sysdba2.停止实例shutdown abort;执行结果&#xff1a;ORACLE instance shut down.3.启动实例独占启动的选项是exclusive&#xff0c;表示只允许一个例程使…

MySQL timediff()函数

转载自 MySQL timediff()函数 MySQL TIMEDIFF函数介绍 TIMEDIFF返回两个TIME或DATETIME值之间的差值。 请参阅TIMEDIFF函数的以下语法。 TIMEDIFF(dt1, dt2);TIMEDIFF函数接受两个必须为相同类型的参数&#xff0c;即TIME或DATETIME。 TIMEDIFF函数返回表示为时间值的dt1 -…

纯js实现人脸识别眨眨眼张张嘴案例——alive_face.js

$(function(){//执行开始的方法//showpos true;startTrack();})var showpos false;// Put event listeners into place//window.addEventListener("DOMContentLoaded", function() {// Grab elements, create settings, etc.var canvas document.getElementById(&…

oracle10g ty_str_split,Oracle split(分隔字符串函数)

一 Oracle版本: 10g PLSQL: 8.0二 具体代码如下:1 类型CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)2 函数CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)RETURN ty_str_splitISj INT : 0;i INT : 1;len INT : 0;len…

数组中一种数出现奇数次和两种数出现奇数次

题目描述 思路分析 代码实现 package class01;/*** 创建人 wdl* 创建时间 2021/4/10* 描述*/ public class num1ornum2 {public static void main(String[] args) {int arr1[]{1,2,2,2,1,3,3};printOddTimesNum1(arr1);int arr2[]{1,2,2,2,1,3,3,5};printOddTimesNum2(arr2);}…

基于微软开发平台构建和使用私有NuGet托管库

本篇blog包含使用TFS2017&#xff0c;VS2017等平台和工具搭建和使用NuGet库等基本过程&#xff0c;为团体提供更加自动化和高效的研发活动支持。 作为以产品线或者以专属业务为扩展的项目类型的软件研发团体&#xff0c;都会有自己的基础软件框架和功能模块的软件产品智力资产库…

MySQL timestampdiff()函数

转载自 MySQL timestampdiff()函数 MySQL TIMESTAMPDIFF函数简介 下面说明了TIMESTAMPDIFF函数的语法。 TIMESTAMPDIFF(unit,begin,end);TIMESTAMPDIFF函数返回begin-end的结果&#xff0c;其中begin和end是DATE或DATETIME表达式。 TIMESTAMPDIFF函数允许其参数具有混合类…

linux挂载多个目录下,linux – 如何在centos上使用nfs4挂载多个文件夹?

我想让nfs4在这里工作.机器1(服务器)我有一个文件夹,其中2个其他文件夹我试图独立分享. / shared / folder1 / shared / folder2问题是,我似乎无法弄清楚如何在客户端上独立挂载文件夹.(机器1 – 服务器)/ etc / exports中&#xff1a;/var/shared/folder1 192.168.200.101(rw,…

你真的理解CAP理论吗?

最近在学习消息中间件的时候&#xff0c;接触到了分布式系统&#xff0c;进而接触到CAP理论&#xff0c;上一次接触还是在年初的时候公司的技术分享会上&#xff0c;有人在介绍项目的时候简单介绍了这个CAP理论&#xff0c;但并没有深入研究。这次&#xff0c;该是时候研究一下…

264. 丑数 II---LeetCode---JAVA(动态规划)

class Solution { public int nthUglyNumber(int n) {int[] nums new int[n];//初始化数组int index2 0;int index3 0;int index5 0;int tmp 1;nums[0] 1;//初始化第一个值&#xff0c;当n等于1的时候直接是1int cnt 1;while (cnt < n) {tmp Math.min(nums[index2] …

MySQL week()函数

转载自 MySQL week()函数 MySQL WEEK函数介绍 通常&#xff0c;一年的正常年份为365天&#xff0c;闰年为366天。一年又可以分为许多周&#xff0c;每周有7天。 所以一年&#xff0c;我们经常有365/7 52周&#xff0c;周范围是从1到52。 要查看给定日期属于哪个周数&…

老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)

上篇中&#xff0c;我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理&#xff0c;编译和部署镜像&#xff0c;并且设置容器的自动启动。但是&#xff0c;还有一些重要的问题没有解决&#xff0c;这些问题不解决&#xff0c;就完全谈不上运维&#xff1a;…

linux将光驱挂载到目录下,Linux操作系统下关于光驱的挂载

Linux操作系统下关于光驱的挂载Linux将每一个物理设备都映射成了一个文件&#xff0c;这些文件都放在了/dev文件(linux中目录也是文件)下面&#xff0c;光驱映射成的文件就是一个名为cdrom的文件。mount命令是挂载光驱的基本命令&#xff0c;其后可以跟参数。在挂载光驱之前首先…

2018蓝桥杯省赛---java---C---4( 第几个幸运数)

题目描述 思路分析 直接暴力 代码实现 package TEST;public class Main {public static void main(String[] args) {long n 59084709587505L, cnt 0;for (long a 1; a < n; a * 3)for (long b 1; b < n; b * 5)for (long c 1; c < n; c * 7)if (a * b * c <…

MySQL weekday()函数

转载自 MySQL weekday()函数 WEEKDAY函数返回一个日期的工作日索引值&#xff0c;即星期一为0&#xff0c;星期二为1&#xff0c;星期日为6。 以下说明了WEEKDAY函数的语法&#xff1a; WEEKDAY(date)WEEKDAY函数接受1个参数&#xff0c;即DATE或DATETIME值&#xff0c;它返…

MySQL year()函数

转载自 MySQL year()函数 MySQL YEAR函数简介 YEAR()函数接受date参数&#xff0c;并返回日期的年份。请参阅YEAR()函数的语法&#xff1a; YEAR(date);YEAR()函数返回一个指定日期的年份值&#xff0c;范围为1000到9999&#xff0c;如果日期为零&#xff0c;YEAR()函数返回…

MySQL协议.NET Core实现(一)

一个有技术追求的研发团对&#xff0c;无论使用什么框架、什么工具、什么语言&#xff0c;团队里应该有人有能力把控所使用框架、工具、语言的每一个核心功能的实现细节。团队里的每个成员应该根据自身所长挑选其中一块做深入研究&#xff0c;并把研究成果分享给团队&#xff0…