mysql的日期与时间函数,varchar与date相互转换

Posted 364.99°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的日期与时间函数,varchar与date相互转换相关的知识,希望对你有一定的参考价值。

1.mysql获取系统时间

1.获取当前系统时间

在后面加上一个0,可以将当前查询到的时间转成数字输出。

1.获取当前日期+时间

函数:

函数说明
now()函数开始执行就获取到值
sysdate()函数执行期间动态获取值
select now(), sysdate();

2.获取当前日期

函数
curdate()
current_date()
current_date
select curdate(), current_date(), current_date, CURRENT_DATE() + 0;

3.获取当前时间

函数
curtime()
current_time()
current_time
select curtime(), current_time(), current_time, current_time()+0;

4.获取UTC时间

select utc_date()+0, utc_time(), utc_timestamp;

2.获取昨天、今天、明天的,上一小时,下一小时的时间

1.昨天、今天、明天

日期相减

函数说明

DATE_SUB(date,INTERVAL expr type)

date:合法的日期表达式
expr:时间间隔
type:second、hour、day、minute…

日期 + 时间:

select date_sub(now(),interval 1 day) as '昨天',
	   date_sub(now(),interval 0 day) as '今天',
	   date_sub(now(),interval -1 day) as '明天'

日期:

select date_sub(curdate(),interval 1 day) as '昨天',
	   date_sub(curdate(),interval 0 day) as '今天',
	   date_sub(curdate(),interval -1 day) as '明天'

2.上一小时,前30分钟,后四十五分钟

select date_sub(now(),interval 1 hour) as '上一小时',
	   date_sub(now(),interval 30 minute) as '前30分钟',
	   date_sub(now(),interval 45 minute) as '后四十五分钟';

3.日期相减、时间相减

函数说明
DATEDIFF(date1,date2)date1:合法的日期表达式
date2:合法的日期表达式
TIMEDIFF(time1,time2)time1:合法的时间表达式
time2:合法的时间表达式
select datediff(now(),date_sub(now(),interval 1 day)) as '日期相减';

select timediff(now(),date_sub(date_sub(now(),interval 45 minute),interval 1 day)) as '时间相减';

4.日期相加、时间相加

日期相加

函数说明
DATE_ADD(date,INTERVAL expr type)见DATE_SUB
TIMEDIFF(time1,time2)time1:合法的时间表达式
time2:合法的时间表达式
select date_add(now(),interval 3 day) as '三天后', 
	   date_add(now(),interval 30 minute) as '半小时后'; 

5.补充——sleep()

函数说明
sleep()让SQL语句执行一段时间,单位是秒
select sleep(5), now(), sysdate();

2.mysql的varchar与date的转换

1.varchar转date

函数格式说明
str_to_dateSTR_TO_DATE(str,fmt)str:字符串
fmt:时间格式
select str_to_date('2022 7 26','%Y %m %d') as '今天',
	   str_to_date('2022,27,7','%Y,%d,%m') as '明天',
	   str_to_date('2022725','%Y%m%d') as '昨天';

select str_to_date('26-7-2022-123456', '%d-%m-%Y') as '今天',
	   str_to_date('2022', '%Y') as '今年';

select str_to_date('221322','%H%i%s') as '现在1',
	   str_to_date('22:13:22','%H:%i:%s') as '现在2';

select str_to_date('221322','%H%i%s') as '现在1',
	   str_to_date('22:13:22','%H:%i:%s') as '现在2',
	   str_to_date('2022,7,26 22:13:22','%Y,%m,%e %H:%i:%s') as '现在3';

2.date转varchar

函数格式说明
date_formatDATE_FORMAT(date,format)date:合法的日期
format :规定日期/时间的输出格式
select date_format(now(), '%Y %m %d') as '今天',
	   date_format(now(), '%Y-%m-%d %H:%i:%s') as '现在'; 

3.补充

获取某天某一时刻的字符串

select date_format(trim(concat((select DATE_SUB(curdate(),INTERVAL 0 DAY)),' 00:00:00')), '%Y-%m-%d %H:%i:%s') as '今天凌晨',
	   date_format(trim(concat((select DATE_SUB(curdate(),INTERVAL 1 DAY)),' 00:00:00')), '%Y-%m-%d %H:%i:%s') as '昨天凌晨',
	   date_format(trim(concat((select DATE_SUB(curdate(),INTERVAL -1 DAY)),' 00:00:00')), '%Y-%m-%d %H:%i:%s') as '明天凌晨';

以上是关于mysql的日期与时间函数,varchar与date相互转换的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:比较两个转换函数的结果

mysql 的日期和时间函数

mysql与oracle的日期/时间函数小结

MySQL日期与时间函数

MySQL日期与时间函数

MySQL日期与时间函数