MySQL中的datediff是什么?如何使用?

2021年11月9日19:24:24 发表评论 2,415 次浏览

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';
MySQL中的datediff是什么?如何使用?

如输出所示,指定日期之间的差异为 25568 天。

与较早的日期比较

如果第二次日期晚于第一次日期怎么办?交换值并测试它们。

$ SELECT DATEDIFF('2020-10-10', '2090-10-11') AS 'Result';
MySQL中的datediff是什么?如何使用?

如我们所见,它仍然显示 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';
MySQL中的datediff是什么?如何使用?
$ SELECT DATEDIFF ( '2090-10-11 00:00:00' , '2020-10-10 23:59:59' ) AS 'Result_2' ;
MySQL中的datediff是什么?如何使用?

请注意,附加时间值不会影响计算结果。该功能仅关注日期。

使用错误的日期值

MySQL中的datediff是什么?如果日期值错误,则 DATEDIFF() 将返回 NULL 值。要进行展示,请为任一参数输入无效日期。

$ SELECT DATEDIFF('2099-99-99', '2020-20-20') AS 'Result'
MySQL中的datediff是什么?如何使用?

正如预期的那样,返回值为 NULL。

结合 DATEDIFF() 和 CURDATE()

函数 CURDATE() 返回机器的当前日期。它不需要参数。了解有关使用 CURDATE() 在 MySQL 中插入当前日期和时间的更多信息。

使用 CURDATE(),我们可以找到当前日期和目标日期之间的差异。例如,让我们将当前日期与过去的一天进行比较。

$ SELECT DATEDIFF(CURDATE(), '1980-10-10') AS 'Result'
MySQL中的datediff是什么?如何使用?
$ SELECT DATEDIFF ( '2077-01-01' , CURDATE ( ) ) AS 'Result'
MySQL中的datediff是什么?如何使用?

请注意,还有其他函数,例如 CURRENT_DATE(),其作用与 CURDATE() 相同。在某些情况下,它们可以互换。

$ SELECT DATEDIFF(CURRENT_DATE(), '1980-10-10') AS 'Result'
MySQL中的datediff是什么?如何使用?
MySQL中的datediff是什么

对表使用 DATEDIFF()

MySQL datediff用法示例:到目前为止,我们已经实现了简单的 DATEDIFF() 命令来演示它的用法。是时候付诸行动了。

我抓取了一个示例数据库,其中包含有关某家公司及其员工的各种信息以进行演示。示例数据库可从此处直接获得。我们将从这个数据库中选择员工的名字和姓氏,并找出他们到现在为止工作了多长时间。

$ SELECT first_name, last_name, DATEDIFF(CURDATE(), hire_date) AS 'days worked' FROM employees;
MySQL中的datediff是什么?如何使用?

MySQL如何使用datediff?最后的想法

MySQL中的datediff是什么?本指南成功演示了 MySQL 中 DATEDIFF() 函数的用法。它计算两个日期之间的差值,并以天数的形式返回值。所有的演示都有助于理解 DATEDIFF 函数的工作过程。

要了解有关 MySQL 的更多信息,请查看有关创建表、重命名表、管理用户权限等的指南。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: