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 '明天凌晨';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

364.99°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值