mysql查询结果秒转化成分钟只保留整数 mysql时间转换为秒函数_返回结果

1. 获取时间

函数

功能

返回格式

CURDATE(), CURRENT_DATE()

返回当前日期,只包含年、月、日

2022-03-08

CURTIME(), CURRENT_TIME()

返回当前时间,只包含时、分、秒

19:35:46

NOW(), SYSDATE(), CURRENT_TIMESTAMP(), LOCALTIME(), LOCALTIMESTAMP()

返回当前系统日期和时间

2022-03-08 19:37:07

UTC_DATE()

返回UTC(世界标准时间)日期

2022-03-08

UTC_TIME()

返回UTC(世界标准时间)时间

11:38:52

2. 日期与时间戳的转换

函数

功能

返回格式

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW())

以UNIX时间戳的形式返回当前时间

1646739875

FROM_UNIXTIME(1646739875)

将UNIX时间戳转换为普通时间格式

2022-03-08 19:44:35

3. 获取月份、星期、星期数、天数等函数

函数

功能

返回格式

YEAR(NOW()),/MONTH(NOW()),/DAY(NOW())

返回年/月/日

2022/3/8

HOUR(NOW()), /MONTH(NOW()), /DAY(NOW())

返回时/分/秒

19/3/8

MONTHNAME(NOW())

返回英文月份

March

DAYNAME(NOW())

返回星期几

Tuesday

WEEKDAY(NOW())

返回周几(从0开始)

1(星期二)

QUARTER(NOW())

返回日期对应的季度,范围1-4

1

WEEK(NOW()), WEEKOFYEAR(NOW())

返回一年中的第几周

10

DAYOFYEAR(NOW())

返回一年中的第几天

67

DAYOFMONTH(NOW())

返回所在月份中的第几天

8

DAYOFWEEK(NOW())

返回周几(周日为1)

3(星期二)

4. 日期的操作函数

-- 返回指定日期中的特定部分,type指定返回的值;
SELECT EXTRACT(TYPE FROM NOW()) FROM DUAL;

TYPE的含义与取值:

type取值

含义

返回值

MICROSECOND

返回毫秒数

SECOND

返回秒数

12

MINUTE

返回分钟数

25

HOUR

返回小时数

20(24小时制)

DAY

返回天数

8

WEEK

返回日期在一年中的第几个星期

10

MONTH

返回日期在一年中的第几个月

3

QUARTER

返回日期在一年中和第几个季度

1

YEAR

返回日期的年份

2022

SECOND_MICROSECOND

返回秒和毫秒值

34000000

MINUTE_MICROSECOND

返回分钟和毫秒值

3716000000

MINUTE_SECOND

返回分钟和秒值

3851(2022-03-08 20:38:51)

HOUR_MICROSECOND

返回小时和毫秒值

203944000000(2022-03-08 20:39:44)

HOUR_SECOND

返回小时和秒值

204025(2022-03-08 20:40:25)

HOUR_MINUTE

返回小时和分钟值

2040(2022-03-08 20:40:52)

DAY_MICROSECOND

返回天和毫秒值

204126000000(2022-03-08 20:41:26)

DAY_SECOND

返回天和秒值

204208(2022-03-08 20:42:08)

DAY_MINUTE

返回天和分钟值

2043(2022-03-08 20:43:17)

DAY_HOUR

返回天和小时

20(2022-03-08 20:43:54)

YEAR_MONTH

返回年和月

202203(2022-03-08 20:44:23)

5. 时钟和秒钟转换的函数

-- 将time转化为秒并返回结果值,转化公式为:小时*3600*分钟*69+秒
SELECT TIME_TO_SEC('2022-03-08 20:44:23')
FROM DUAL;
-- 转换结果:74663



-- seconds转化为时分秒
SELECT SEC_TO_TIME(74663) FROM DUAL;  
-- 转换结果:20:44:23

6. 计算日期和时间的函数

6.1 计算时间间隔

函数

功能

备注

DATE_ADD(datetime, INTERVAL expr type),ADDDATE(datetime, INTERVAL expr type)

计算时间间隔(时间增加)

expr表示时间间隔,type值见下表

DATE_SUB(datetime, INTERVAL expr type),SUBDATE(datetime, INTERVAL expr type)

计算时间间隔(时间减少)

expr表示时间间隔,type值见下表

举例:

SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL 2 DAY) AS A FROM DUAL;
SELECT ADDDATE('2022-03-08 20:43:54', INTERVAL 2 DAY) AS B FROM DUAL;
-- 返回相同结果:2022-03-10 20:43:54


SELECT DATE_SUB('2022-03-08 20:43:54', INTERVAL 2 DAY) C FROM DUAL;
SELECT SUBDATE('2022-03-08 20:43:54', INTERVAL 2 DAY) D FROM DUAL;
-- 返回相同结果:2022-03-06 20:43:54


-- 间隔两和类型的时间时可以用冒号和下划线,要用单引号
SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL '2:2' DAY_HOUR ) AS A FROM DUAL;
SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL '2_2' DAY_HOUR ) AS A FROM DUAL;
-- 返回相同结果:2022-03-10 22:43:54

type值如下表:

type间隔类型

含义

HOUR

小时

MINUTE

分钟

SECOND


YEAR


MONTH


DAY


YEAR_MONTH

年和月

DAY_HOUR

日和小时

DAY_MINUTE

日和分钟

DAY_SECOND

日和秒

HOUR_MINUTE

小时和分钟

HOUR_SECOND

小时和秒

MINUTE_SECOND

分钟和秒

6.2 时间计算

函数

功能

返回格式

ADDTIME(time1, expr)

添加expr到time1并返回结果

2022-03-09 21:44:55

SUBTIME(time2, expr)

time1减去expr并返回结果

2022-03-07 19:42:53

DATEDIFF(time1, time2)

返回time1与time2的日期间隔(time1-time2)

-1(天)

TIMEDIFF(time1, time2)

返回time1与time2的时间间隔(time1-time2)

26:03:45(时分秒)

FROM_DAYS(N)

返回从0000年1月1日起,N天以后的日期

0002-09-27

TO_DAYS(time)

返回时间time距离0000年1月1日的天数

738588

LAST_DAY(time)

返回time所在月份的最后一天的日期

2022-03-31

MAKEDATE(year, n)

针对给定年份与所在年份中的天数返回一个日期

2022-04-10

MAKETIME(h, m, s)

将给定的小时、分钟和秒组合成时间并返回

10:20:33

PERIOD_ADD(time,n)

此函数将给定时期的给定月份数添加到格式YYMM或YYYYMM中

20220309

举例:

SELECT DATE_ADD('2022-03-08 20:43:54', INTERVAL '2:2' DAY_HOUR ) AS A FROM DUAL;
-- 返回:2022-03-10 22:43:54

SELECT ADDTIME('2022-03-08 20:43:54', '1 1:1:1') FROM DUAL;
-- 返回:2022-03-09 21:44:55

SELECT SUBTIME('2022-03-08 20:43:54', '1 1:1:1') FROM DUAL;
-- 返回:2022-03-07 19:42:53

SELECT DATEDIFF('2022-03-08 20:43:54', '2022-03-09 20:43:54') AS A FROM DUAL;
-- 返回:-1

SELECT TIMEDIFF('2022-03-09 20:43:54', '2022-03-08 18:40:09') AS B FROM DUAL;
-- 返回:26:03:45

SELECT FROM_DAYS(1000) FROM DUAL;
-- 返回:0002-09-27

SELECT TO_DAYS('2022-03-09 20:43:54') FROM DUAL;
-- 返回:738588

SELECT LAST_DAY('2022-03-09 20:43:54') FROM DUAL;
-- 返回:2022-03-31

SELECT MAKEDATE(2022, 100) FROM DUAL;
-- 返回:2022-04-10

SELECT MAKETIME(10, 20, 33) FROM DUAL;
-- 返回:10:20:33

SELECT PERIOD_ADD(20220308,1) FROM DUAL;
-- 返回:20220309

7. 日期的格式化与解析

函数

功能

返回格式

DATE_FORMAT(date,fmt)

按照字符串fmt格式化日期date值

TIME_FORMAT(time,fmt)

按照字符串fmt格式化时间time值

STR_TO_DATE(str, fmt)

按照字符串fmt对str进行解析,解析为一个日期

fmt格式如下:

格式符

说明

格式符

说明

%Y

4位数字表示年份

%y

表示两位数字的年份

%M

月名表示月份(January,…)

%m

两位数字表示月份

%b

缩写的月名(Jan.,Feb.,…)

%d

两位数字表示月中的天数

%D

英文后缀表示月中的天数(1st,2nd,3rd,…)

%c

数字表示月份(1,2,3。。)

%e

数字形式表示月中的天数(1,2,3,4,5…)

%h

两位数字表示小时,12小时制(01,02。。)

%H

两位数字表示小数,24小时制(01,02…)

%l

数字形式表示小时,12小时制(1,2。。)

%k

数字形式的小时,24小时制(1,2,3)

%S和%s

两位数字表示秒(00, 01, 02。。)

%i

两位数字表示分钟(00,01,02)

%a

一周中的星期缩写(Sun)

%W

一周中的星期名称(Sunday…)

%w

以数字表示周中的天数(0=Sunday,1=Monday…)

%j

以3位数字表示年中的天数(001,002…)

%U

以数字表示年中的第几周,(1,2,3。。)其中Sunday为周中第一天

%u

以数字表示年中的第几周,(1,2,3。。)其中Monday为周中第一天

%T

24小时制

%r

12小时制

%p

AM或PM

%%

表示%

举例如下:

SELECT DATE_FORMAT(NOW(), '%H:%i:%s');
 -- 返回结果:09:58:12

函数

功能

返回格式

GET_FORMAT(date_type,format_type)

返回日期字符串的显示格式

format_type取值如下:

mysql查询结果秒转化成分钟只保留整数 mysql时间转换为秒函数_时间间隔_02

举例如下:

SELECT GET_FORMAT(DATE, 'USA');
 -- 返回:%m.%d.%Y