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


    1.mysql获取系统时间

    1.获取当前系统时间

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

    1.获取当前日期+时间

    函数:

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

    2.获取当前日期

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

    3.获取当前时间

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

    4.获取UTC时间

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

    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 '明天'
    
    • 1
    • 2
    • 3

    日期:

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

    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 '后四十五分钟';
    
    • 1
    • 2
    • 3

    3.日期相减、时间相减

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

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

    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 '半小时后'; 
    
    • 1
    • 2

    5.补充——sleep()

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

    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 '昨天';
    
    • 1
    • 2
    • 3

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

    select str_to_date('221322','%H%i%s') as '现在1',
    	   str_to_date('22:13:22','%H:%i:%s') as '现在2';
    
    • 1
    • 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';
    
    • 1
    • 2
    • 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 '现在'; 
    
    • 1
    • 2

    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 '明天凌晨';
    
    • 1
    • 2
    • 3

  • 相关阅读:
    线程高频面试题整理
    提升效率必备:电脑文件批量重命名的实用技巧大放送
    工具及方法 - 查电子器件和查说明书
    淘客返利平台的跨平台开发实践
    Elasticsearch使用reindex命令同步跨集群索引数据
    【COMP329 LEC4 Locomotion and Kinematics】
    板块一 Servlet编程:第五节 Cookie对象全解 来自【汤米尼克的JAVAEE全套教程专栏】
    Java项目是不是分布式,真有那么重要吗?
    使用 PyQT 和 Qt 设计器进行 Python GUI 开发
    我在华为度过的 “两辈子”(学习那些在大厂表现优秀的人)
  • 原文地址:https://blog.csdn.net/m0_54355172/article/details/125998218