MySQL 是世界上最流行的数据库之一。无论哪个行业,MySQL 都因其特性而被广泛采用。它是一个开源的 RDBMS(关系数据库管理系统)。数据被组织成可以相互关联的表格。它结合了 SQL 来执行各种数据库操作。
MySQL中的datediff是什么?在本指南中,我们将检查一个这样的功能。它将演示如何在 MySQL 中使用 DATEDIFF 函数。
MySQL如何使用datediff?SQL 中的 DATEDIFF()
DATEDIFF 函数可作为 SQL 查询语言的一部分使用。在 MySQL 中,函数 DATEDIFF() 将两个日期作为输入,计算差值,并返回两个日期之间的日期数。
MySQL datediff用法示例:下面是函数的基本结构。
$ DATEDIFF(expression_1,expression_2)
这里,
- expression_1:第一个日期
- expression_2:第二个日期
表达式可以是以下任何格式。
- time
- date
- datetime
- datetime2
- smalldatetime
- datetimeoffset
但是,在标准 SQL 中, DATEDIFF() 略有不同。它还支持附加参数来指定要处理的日期部分。
$ DATEDIFF(date_part,expression_1,expression_2)
这里,
MySQL中的datediff是什么?date_part:描述函数应该计算的日期部分。默认情况下,该值设置为天。但是,它也支持附加值。这些 date_part 值也有合适的缩写。
- 月(“mm”或“m”)
- 年(“yy”或“yyyy”)
- 季度(“qq”或“q”)
- 天(“dd”或“d”)
- 周(“wk”或“ww”
- dayofyear(“dy”或“y”)
- 小时(“hh”)
- 分钟(“mi”或“m”)
- 第二个(“ss”或“s”)
- 毫秒(“ms”)
- 微秒(“mcs”)
- 纳秒(“ns”)
函数 DATEDIFF() 也有范围限制。日期差的计算值必须在整数范围内(-2,147,483,647 到 2,147,483,648)。
MySQL datediff用法示例
在本节中,我们将查看使用该功能的各种方法。为了演示,MySQL 服务器设置了 phpMyAdmin 以方便使用。查看有关在 Ubuntu上配置 phpMyAdmin 的指南。
基本用法
在 SQL 选项卡中,运行以下查询。
$ SELECT DATEDIFF('2090-10-11', '2020-10-10') AS 'Result';
如输出所示,指定日期之间的差异为 25568 天。
与较早的日期比较
如果第二次日期晚于第一次日期怎么办?交换值并测试它们。
$ SELECT DATEDIFF('2020-10-10', '2090-10-11') AS 'Result';
如我们所见,它仍然显示 25568 天。但是,该值为负数。在任何 SQL 脚本/查询中实现此函数时要牢记这一点。
MySQL datediff用法示例:日期时间值
MySQL如何使用datediff?DATEDIFF() 函数还接受日期时间值作为参数。时间值预计为 24 小时格式。
$ SELECT DATEDIFF('2090-10-11 23:59:59', '2020-10-10 00:00:00') AS 'Result_1';
$ SELECT DATEDIFF ( '2090-10-11 00:00:00' , '2020-10-10 23:59:59' ) AS 'Result_2' ;
请注意,附加时间值不会影响计算结果。该功能仅关注日期。
使用错误的日期值
MySQL中的datediff是什么?如果日期值错误,则 DATEDIFF() 将返回 NULL 值。要进行展示,请为任一参数输入无效日期。
$ SELECT DATEDIFF('2099-99-99', '2020-20-20') AS 'Result'
正如预期的那样,返回值为 NULL。
结合 DATEDIFF() 和 CURDATE()
函数 CURDATE() 返回机器的当前日期。它不需要参数。了解有关使用 CURDATE() 在 MySQL 中插入当前日期和时间的更多信息。
使用 CURDATE(),我们可以找到当前日期和目标日期之间的差异。例如,让我们将当前日期与过去的一天进行比较。
$ SELECT DATEDIFF(CURDATE(), '1980-10-10') AS 'Result'
$ SELECT DATEDIFF ( '2077-01-01' , CURDATE ( ) ) AS 'Result'
请注意,还有其他函数,例如 CURRENT_DATE(),其作用与 CURDATE() 相同。在某些情况下,它们可以互换。
$ SELECT DATEDIFF(CURRENT_DATE(), '1980-10-10') AS 'Result'
对表使用 DATEDIFF()
MySQL datediff用法示例:到目前为止,我们已经实现了简单的 DATEDIFF() 命令来演示它的用法。是时候付诸行动了。
我抓取了一个示例数据库,其中包含有关某家公司及其员工的各种信息以进行演示。示例数据库可从此处直接获得。我们将从这个数据库中选择员工的名字和姓氏,并找出他们到现在为止工作了多长时间。
$ SELECT first_name, last_name, DATEDIFF(CURDATE(), hire_date) AS 'days worked' FROM employees;
MySQL如何使用datediff?最后的想法
MySQL中的datediff是什么?本指南成功演示了 MySQL 中 DATEDIFF() 函数的用法。它计算两个日期之间的差值,并以天数的形式返回值。所有的演示都有助于理解 DATEDIFF 函数的工作过程。
要了解有关 MySQL 的更多信息,请查看有关创建表、重命名表、管理用户权限等的指南。