zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Mysql入门技能树-时间日期函数(二)

mysql日期入门 函数 时间 技能
2023-09-14 09:13:33 时间

时间日期函数(二)

EXTRACT

关于 Extract 操作和其它日期时间函数的对应关系,下列说法正确的是:

1.extract(mirosecond from date) 相当于 ms(date)
2.extract(second from date) 相当于 second(date)
3.extract(minute from date) 相当于 minute(date)
4.extract(hour from date) 相当于 hour(date)
5.extract(day from date) 相当于 day(date)
6.extract(week from date) 相当于 week(date)
7.extract(month from date) 相当于 month(date)
8.extract(quarter from date) 相当于 quarter(date)
9.extract(year from date) 相当于 year(date)
在这里插入图片描述
答案是:D
第一个中mirosecond就写错了,应该是microsecond,ms(date)也不对,应该是microsecond(date)


select extract(year from now()),year(now())
union all
select extract(month from now()),month(now())
union all 
select extract(day from now()),day(now())
union all
select extract(hour from now()),hour(now())
union all 
select extract(minute from now()),minute(now())
union all 
select extract(second from now()),second(now())
union all
select extract(microsecond from '2023-01-15 10:22:59.123456'),microsecond('2023-01-15 10:22:59.123456')
union all
select extract(quarter from now()),quarter(now())
union all 
select extract(week from now()),week(now())

依次是年、月、日、时、分、秒、微秒、季度、周
在这里插入图片描述

TIMESTAMP

关于 UNIX 时间戳和 MySQL 的日期时间类型,以下说法正确的是:

1.UNIX_TIMESTAMP(date) 函数将 date 转换为 UNIX 时间戳
2.FROM_UNIXTIME(timestamp) 将 UNIX 时间戳 timestamp 转换为 date 类型
3.extract(timestamp from date) 可以将 date 转换为 Unix 时间戳
4.extract(datetime from timestamp) 可以将时间戳转换为 datetime
在这里插入图片描述
答案是:D

select UNIX_TIMESTAMP(now())
union all
select from_unixtime(1673750012) 

在这里插入图片描述
1,2正确
EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。只是用于提取,不存在时间转换用法。3,4错误

FROM_DAYS

FROM_DAYS 函数返回的是?
在这里插入图片描述
答案是:A
FROM_DAYS()函数从数字日期值返回一个日期。
FROM_DAYS()函数仅与公历中的日期一起使用。
注意:此函数与TO_DAYS()函数相反 。

select to_days('2023-02-15 10:33:32') 
union all
select from_days(738931)

在这里插入图片描述

日期时间计算

以下关于时间和日期数据计算的知识,哪些是正确的?

1.ADDTIME(time1,time2)函数返回time1加上time2的时间。其中,time2是一个表达式,也可以是一个数字,当time2为一个数字时,代表的是秒。
2.SUBTIME(time1,time2)函数返回time1减去time2后的时间。其中,time2是一个表达式,也可以是一个数字,当time2为一个数字时,代表的是秒。
3.DATE_ADD(date,INTERVAL expr type)函数返回与date加上INTERVAL时间间隔的日期。Type 与 extract 参数中毫秒之外的部分相同。
4.DATE_SUB(date,INTERVAL expr type)函数返回与date减去INTERVAL时间间隔的日期。Type 与 extract 参数中毫秒之外的部分相同。
5.DATEDIFF(date1,date2) 函数计算两个日期之间相差的天数。
PERIOD_ADD(time,n)函数返回time加上n后的时间。
在这里插入图片描述
答案是:C
1正确

SELECT ADDTIME('2023-01-15 10:51:02','1:2:5')
union all
SELECT ADDTIME('2023-01-15 10:51:02',3)

在这里插入图片描述
第一条是加了1小时2分5秒,第二条是加了3秒
2正确

SELECT SUBTIME('2023-01-15 11:53:07','1:2:5')
union all
SELECT SUBTIME('2023-01-15 11:53:07',3)

在这里插入图片描述
第一条是减去1小时2分5秒,第二条是减去3秒
3正确

select DATE_ADD('2023-01-15 11:02:07',INTERVAL 45 DAY)
union all
select DATE_ADD('2023-01-15 11:02:07',INTERVAL 5 second)

在这里插入图片描述
第一条是加上45天,第二条是加上5秒
4正确

select DATE_SUB('2023-03-01 11:02:07',INTERVAL 45 DAY)
union all
select DATE_SUB('2023-01-15 11:02:12',INTERVAL 5 second)

在这里插入图片描述
第一条是减去45天,第二条是减去5秒
5正确

SELECT DATEDIFF('2023-03-01','2023-01-15')
union all
SELECT DATEDIFF('2023-01-15','2023-03-01')

在这里插入图片描述
6正确
使用PERIOD_ADD()函数在给定期间增加/减去月份。

select PERIOD_ADD(202212,1)
union all
select PERIOD_ADD(202301,-1)

在这里插入图片描述
本文出现的所有union all只是为了将结果一起展示方便截图,不要被误导。