暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL时间函数总结

数据库干货铺 2023-03-13
791
点击上方蓝字关注我
    竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
    复制

    1. NOW():返回当前日期和时间



      SELECT NOW();

      复制
      这将返回当前日期和时间的值,例如:2023-03-11 15:32:45。
      1. DATE():从日期时间值中提取日期部分:
        SELECT DATE('2023-03-11 15:32:45');

        复制
        这将返回日期部分的值,即:2023-03-11。
        1. TIME():从日期时间值中提取时间部分:
          SELECT TIME('2023-03-11 15:32:45');

          这将返回时间部分的值,即:15:32:45。
          复制
          1. YEAR():从日期时间值中提取年份部分:
            SELECT YEAR('2023-03-11 15:32:45');

            复制
            这将返回年份部分的值,即:2023。
            1. MONTH():从日期时间值中提取月份部分:
              SELECT MONTH('2023-03-11 15:32:45');

              复制
              这将返回月份部分的值,即:3。
              1. DAY():从日期时间值中提取天数部分:
                SELECT DAY('2023-03-11 15:32:45');

                复制
                这将返回天数部分的值,即:11。
                1. HOUR():从日期时间值中提取小时部分:
                  SELECT HOUR('2023-03-11 15:32:45');

                  复制
                  这将返回小时部分的值,即:15。
                  1. MINUTE():从日期时间值中提取分钟部分:
                    SELECT MINUTE('2023-03-11 15:32:45');
                    这将返回分钟部分的值,即:32。
                    复制
                    1. SECOND():从日期时间值中提取秒数部分:
                      SELECT SECOND('2023-03-11 15:32:45');

                      复制
                      这将返回秒数部分的值,即:45。
                      1.  CURDATE():返回当前日期
                        SELECT CURDATE();

                        复制
                        这将当前日期,即:2023-03-11。
                        1.  UNIX_TIMESTAMP():返回当前时间戳
                          SELECT UNIX_TIMESTAMP();

                          复制
                          这将返回当前时间戳的值,例如:1647045165。
                          1.  FROM_UNIXTIME():将时间戳转换为日期时间值
                            SELECT FROM_UNIXTIME(1647045165);

                            复制
                            这将返回时间戳对应的日期时间值,例如:2023-03-11 15:39:25。
                            1. DATE_FORMAT():将日期时间值格式化为指定的字符串
                              SELECT DATE_FORMAT('2023-03-11 15:32:45', '%Y-%m-%d %H:%i:%s');
                              将返回日期时间值的格式化字符串,即:2023-03-11 15:32:45。您可以在DATE_FORMAT函数的第二个参数中指定所需的格式。
                              复制
                              1. TIME_FORMAT():将时间值格式化为指定的字符串格式
                                SELECT TIME_FORMAT('15:32:45', '%H:%i:%s');
                                这将返回时间值的格式化字符串,即:15:32:45。
                                PS:可以在TIME_FORMAT函数的第二个参数中指定所需的格式。
                                复制
                                1. STR_TO_DATE(): 将字符串转换为日期时间值

                                复制
                                  SELECT STR_TO_DATE('2023-03-11''%Y-%m-%d');
                                  复制
                                  这将返回字符串对应的日期时间值,即:2023-03-11。您可以在STR_TO_DATE函数的第二个参数中指定所需的格式。
                                  复制
                                  1. WEEKDAY(): 返回给定日期的星期几

                                  复制
                                    SELECT WEEKDAY('2023-03-11');
                                    复制
                                    这将返回给定日期的星期几的值,例如:5(表示星期六,周一为0)。
                                    复制
                                    1. DAYNAME():返回给定日期的星期几的名称

                                    复制
                                      SELECT DAYNAME('2023-03-11');
                                      复制
                                      这将返回给定日期的星期几的名称,即返回"Saturday"
                                      复制
                                      1. MONTHNAME(): 返回给定日期的月份的名称

                                      复制
                                        SELECT MONTHNAME('2023-03-11');
                                        复制
                                        这将返回给定日期的月份的名称,例如:March。
                                        复制
                                        1. YEARWEEK(): 返回给定日期的年份和周数

                                        复制
                                          SELECT YEARWEEK('2023-03-11');
                                          复制
                                          这将返回给定日期的年份和周数的值,例如:202310。
                                          复制
                                          1. TIMEDIFF():计算两个时间值之间的时间差

                                          复制
                                            SELECT TIMEDIFF('2023-03-11 16:00:00''2023-03-11 15:00:00');
                                            复制
                                            这将返回两个时间值之间的时间差,例如:01:00:00。
                                            复制
                                            1. TIMESTAMPDIFF():计算两个日期时间值之间的时间差,以指定的时间单位返回结果
                                              SELECT TIMESTAMPDIFF(HOUR, '2023-03-11 15:00:00', '2023-03-11 16:00:00');


                                              复制
                                              这将返回两个时间值之间的小时数,即:1。
                                              1. UTC_DATE():返回当前UTC日期
                                                SELECT UTC_DATE();
                                                这将返回当前UTC日期的值,例如:2023-03-11。
                                                复制
                                                1. UTC_TIME():返回当前UTC时间
                                                  SELECT UTC_TIME();
                                                  这将返回当前UTC时间的值,例如:15:32:45。
                                                  复制
                                                  1. UTC_TIMESTAMP():返回当前UTC日期和时间

                                                  复制
                                                    SELECT UTC_TIMESTAMP();
                                                    复制
                                                    这将返回当前UTC日期和时间的值,例如:2023-03-11 07:32:45。
                                                    复制
                                                    1. SEC_TO_TIME():将秒数转换为时间值
                                                      SELECT SEC_TO_TIME(3600);
                                                      将返回秒数对应的时间值,即:01:00:00。
                                                      复制
                                                      1. TIME_TO_SEC():将时间值转换为秒数

                                                      复制
                                                        SELECT TIME_TO_SEC('01:00:00');
                                                        复制
                                                        这将返回时间值对应的秒数,即:3600。
                                                        复制
                                                        1. LAST_DAY():获取指定时间的当月的最后一天

                                                        复制
                                                          SELECT LAST_DAY(DATE('2023-03-11  16:00:03'));


                                                          复制
                                                          返回的结果为“2023-03-31”
                                                          复制
                                                          1. ADDDATE(): 将日期加上指定的天数
                                                            SELECT ADDDATE('2023-03-11', INTERVAL 7 DAY);
                                                            复制
                                                            这将返回日期加上7天后的值,即:2023-03-18。
                                                            1. SUBDATE(): 将日期减去指定的天数

                                                            复制
                                                              SELECT SUBDATE('2023-03-11', INTERVAL 7 DAY);
                                                              复制
                                                              这将返回日期减去7天后的值,即:2023-03-04。
                                                              复制
                                                              1.  DATEDIFF(): 计算两个日期之间的天数差

                                                              复制
                                                                SELECT DATEDIFF('2023-03-11''2023-03-04');
                                                                复制
                                                                这将返回两个日期之间的天数差,即:7。
                                                                复制
                                                                1. TIMEDIFF(): 计算两个时间之间的时间差

                                                                复制
                                                                  SELECT TIMEDIFF('23:59:59''12:00:00');
                                                                  复制
                                                                  这将返回两个时间之间的时间差,即:11:59:59。
                                                                  复制
                                                                  1. TIMESTAMPDIFF():计算两个日期之间的差

                                                                  复制
                                                                    SELECT TIMESTAMPDIFF(DAY'2023-03-04''2023-03-11');
                                                                    复制
                                                                    这将返回两个日期之间的天数差,即:7。可以在TIMESTAMPDIFF函数的第一个参数中指定所需的时间单位。
                                                                    复制
                                                                    1.  计算当前月份的第一天和最后一天

                                                                    复制
                                                                      SELECT DATE_FORMAT(NOW(), '%Y-%m-01'AS first_day_of_month, LAST_DAY(NOW()) AS last_day_of_month;
                                                                      复制
                                                                      这将返回当前月份的第一天和最后一天的值,例如:2023-03-01和2023-03-31。
                                                                      复制
                                                                      1. 计算指定月份的第一天和最后一天

                                                                      复制
                                                                        SELECT DATE_FORMAT('2023-06-15''%Y-%m-01'AS first_day_of_month, LAST_DAY('2023-06-15'AS last_day_of_month;
                                                                        复制
                                                                        这将返回指定月份的第一天和最后一天的值,例如:2023-06-01和2023-06-30。
                                                                        复制
                                                                        1. 计算当前周的第一天和最后一天

                                                                        复制
                                                                          SELECT DATE_FORMAT(DATE_ADD(NOW(), INTERVAL(1-DAYOFWEEK(NOW())) DAY), '%Y-%m-%d'AS first_day_of_week, DATE_FORMAT(DATE_ADD(NOW(), INTERVAL(7-DAYOFWEEK(NOW())) DAY), '%Y-%m-%d'AS last_day_of_week;
                                                                          复制
                                                                          这将返回当前周的第一天和最后一天的值(默认周日为每周的第一天),例如:2023-03-05和2023-03-11。
                                                                          复制
                                                                          1. 计算指定日期所在周的第一天和最后一天:

                                                                          复制
                                                                            SELECT DATE_FORMAT(DATE_ADD('2023-06-15'INTERVAL(1-DAYOFWEEK('2023-06-15')) DAY), '%Y-%m-%d'AS first_day_of_week, DATE_FORMAT(DATE_ADD('2023-06-15'INTERVAL(7-DAYOFWEEK('2023-06-15')) DAY), '%Y-%m-%d'AS last_day_of_week;
                                                                            复制
                                                                            这将返回指定日期所在周的第一天和最后一天的值,例如:2023-06-11和2023-06-17。
                                                                            复制


                                                                            往期精彩回顾

                                                                            1.  MySQL高可用之MHA集群部署

                                                                            2.  mysql8.0新增用户及加密规则修改的那些事

                                                                            3.  比hive快10倍的大数据查询利器-- presto

                                                                            4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

                                                                            5.  PostgreSQL主从复制--物理复制

                                                                            6.  MySQL传统点位复制在线转为GTID模式复制

                                                                            7.  MySQL敏感数据加密及解密

                                                                            8.  MySQL数据备份及还原(一)

                                                                            9.  MySQL数据备份及还原(二)

                                                                            扫码关注     

                                                                            文章转载自数据库干货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                            评论