大家好,又见面了,我是你们的朋友全栈君。
timestampdiff
MySQL TIMESTAMPDIFF函数简介
下面说明了TIMESTAMPDIFF函数的语法。
TIMESTAMPDIFF(unit,begin,end);
TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式。
TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DATETIME值。 如果使用DATE值,则TIMESTAMPDIFF函数将其视为时间部分为“00:00:00”的DATETIME值。
unit参数是确定(end-begin)的结果的单位,表示为整数。 以下是有效单位:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
YEAR
MySQL TIMESTAMPDIFF函数示例
以下示例将以月份值的形式返回2018-01-01和2018-06-01的差值:
mysql> SELECT TIMESTAMPDIFF(MONTH, ‘2018-01-01’, ‘2018-06-01’) result;
+——–+
| result |
+——–+
| 5 |
+——–+
1 row in set
如果您希望看到差值,只需要将unit参数从MONTH更改为DAY,如下所示:
mysql> SELECT TIMESTAMPDIFF(DAY, ‘2010-01-01’, ‘2010-06-01’) result;
+——–+
| result |
+——–+
| 151 |
+——–+
1 row in set
以下语句返回两个DATETIME值(以分钟为单位)的差异值:
mysql> SELECT TIMESTAMPDIFF(MINUTE, ‘2018-01-01 10:00:00’, ‘2018-01-01 10:45:00’) result;
+——–+
| result |
+——–+
| 45 |
+——–+
1 row in set
请注意,TIMESTAMPDIFF仅考虑与unit参数相关的时间部分。 请参阅以下示例:
mysql> SELECT TIMESTAMPDIFF(MINUTE, ‘2018-01-01 10:00:00’, ‘2018-01-01 10:45:59’) result;
+——–+
| result |
+——–+
| 45 |
+——–+
1 row in set
差值应该是45分59秒。 但是,我们将unit参数传递为MINUTE,因此,函数按预期返回45分钟。
如果使用SECOND而不是MINUTE,则TIMESTAMPDIFF函数将考虑SECOND部分,如以下示例所示:
mysql> SELECT TIMESTAMPDIFF(SECOND, ‘2018-01-01 10:00:00’, ‘2018-01-01 10:45:59’) result;
+——–+
| result |
+——–+
| 2759 |
+——–+
1 row in set
注:45分59秒= 45×60 + 59(秒)= 2759秒
使用MySQL TIMESTAMPDIFF函数计算年龄
首先,我们创建一个名为persons的新表,用于演示。
USE testdb;
CREATE TABLE persons (
id INT AUTO_INCREMENT PRIMARY KEY,
full_name VARCHAR(255) NOT NULL,
date_of_birth DATE NOT NULL
);
其次,向persons表中插入一些行:
INSERT INTO persons(full_name, date_of_birth)
VALUES(‘John Doe’, ‘1990-01-01’),
(‘David Taylor’, ‘1989-06-06’),
(‘Peter Drucker’, ‘1985-03-02’),
(‘Lily Minsu’, ‘1992-05-05’),
(‘Mary William’, ‘1995-12-01’);
第三步,使用TIMESTAMPDIFF来计算persons表中每个人的年龄:
SELECT
id,
full_name,
date_of_birth,
TIMESTAMPDIFF(YEAR,
date_of_birth,
‘2018-01-01’) age
FROM
persons;
执行上面查询语句,得到以下结果 –
+—-+—————+—————+—–+
| id | full_name | date_of_birth | age |
+—-+—————+—————+—–+
| 1 | John Doe | 1990-01-01 | 28 |
| 2 | David Taylor | 1989-06-06 | 28 |
| 3 | Peter Drucker | 1985-03-02 | 32 |
| 4 | Lily Minsu | 1992-05-05 | 25 |
| 5 | Mary William | 1995-12-01 | 22 |
+—-+—————+—————+—–+
5 rows in set
在此语句中,我们计算到2018-01-01日为止的年龄。如果要计算当前年龄,可以通过NOW函数替换字面值’2018-01-01’,如下所示:
SELECT
id,
full_name,
date_of_birth,
TIMESTAMPDIFF(YEAR,
date_of_birth,
NOW()) age
FROM
persons;
执行上面查询语句,得到以下结果 –
+—-+—————+—————+—–+
| id | full_name | date_of_birth | age |
+—-+—————+—————+—–+
| 1 | John Doe | 1990-01-01 | 27 |
| 2 | David Taylor | 1989-06-06 | 28 |
| 3 | Peter Drucker | 1985-03-02 | 32 |
| 4 | Lily Minsu | 1992-05-05 | 25 |
| 5 | Mary William | 1995-12-01 | 21 |
+—-+—————+—————+—–+
5 rows in set
在写这篇文章时,当前日期是:2017-08-10
在本教程中,您学习了如何使用MySQL TIMESTAMPDIFF函数来计算两个DATE或DATETIME值之间的差值。
相关阅读
1.文件偏移
通常调用read或write每读写一个文件,就会改变文件的读写位置。在linux中同样可以使用lseek函数来修改文件偏移量,即读
greatest (max(one),max(two),max(three))求多列的最大值,oracle中的greatest 函数
已知表TB的数据如下 SQL> select * from tb;
Python product函数介绍
product(A,B)函数,返回A和B中的元素组成的笛卡尔积的元组,具体见如下代码:import itertools
for item
Pattern.compile函数:Pattern Pattern.compile(String regex, int flag)flag的取值范围如下:Pattern.CANON_EQ,当且仅当两个字符的”
析构函数:在类中声明的一种成员函数①析构函数与类名同名②析构函数无参(不可重载)③表示:
~类名()
{
析构函数体;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132923.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...