第8讲——MySQL数据类型和运算符3

59 阅读6分钟

❤️持续创作,加速成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情

🎨 个人介绍

👉大家好,我是:旺仔不是程序员

👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻

👉你的支持,是我每天更新的动力。

👉赞点:👍 留言:✍ 收藏:⭐

👉个人格言:想法一步一步的落实,才是你我前进最佳选择。

my.jpeg

日期和时间函数

1. 获取整体时间

  1. 获取当前日期的函数和获取当前时间的函数
 # 使用日期函数获取系统当前日期,
 # “CURDATE()+0”将当前日期值转换为数值型
 # 输入语句如下:
 SELECT CURDATE(),CURRENT_DATE(), CURDATE() + 0;
 # 使用时间函数获取系统当前时间,输入语句如下:
 SELECT CURTIME(),CURRENT_TIME(),CURTIME() + 0;
 # 使用日期时间函数获取当前系统日期和时间
 # CURTIME ()+0”将当前时间值转换为数值型。
 # 输入语句如下:
  SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
 ​
  1. 获取当前日期和时间的函数
 # 使用日期时间函数获取当前系统日期和时间
 # 输入语句如下:
 SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
  1. UNIX时间戳函数
 # 使用UNIX_TIMESTAMP函数返回UNIX格式的时间戳,输入语句如下:
 SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW()), NOW();
 # 使用FROM_UNIXTIME函数将UNIX时间戳转换为普通格式时间,输入语句如下:
 SELECT FROM_UNIXTIME('1669600036');
  1. 返回UTC日期的函数和返回UTC时间的函数
 # 使用UTC_DATE()函数返回当前UTC日期值,
 # “CURDATE()+0”将当前日期值转换为数值型
 # 当前时间以‘HH:MM:SS’或HHMMSS的格式返回
 # 输入语句如下:
 SELECT UTC_DATE(), UTC_DATE() + 0;
 # 使用UTC_TIME()函数返回当前UTC时间值,输入语句如下:
 SELECT UTC_TIME(), UTC_TIME() + 0;

2. 获取部分时间

  1. 获取月份的函数MONTH(date)和MONTHNAME(date)
 # 使用MONTH()函数返回指定日期中的月份
 # 获取的是数字,如 2
 # 输入语句如下:
 SELECT MONTH('2022-02-13'); # 
 # 使用MONTHNAME()函数返回指定日期中的月份的名称
 # 获取名称,如:February
 # 输入语句如下:
 SELECT MONTHNAME('2022-02-13');
  1. 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
 # 使用DAYNAME()函数返回指定日期的工作日名称,输入语句如下:
 SELECT DAYNAME('2022-11-28');
 # 使用DAYOFWEEK()函数返回日期对应的周索引,输入语句如下:
 # 1表示周日,2表示周一,...,7表示周六
 SELECT DAYOFWEEK('2022-11-28');
 # 使用WEEKDAY()函数返回日期对应的工作日索引,输入语句如下:
 # 0表示周一,1表示周二,...,6表示周日
 SELECT WEEKDAY('2022-11-28 22:23:00'), WEEKDAY('2022-11-28');
  1. 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
 # 使用DAYOFYEAR()函数返回指定日期在一年中的位置,输入语句如下:
 SELECT DAYOFYEAR('2022-02-25');
 # 使用DAYOFYEAR()函数返回指定日期在一个月中的位置,输入语句如下:
 SELECT DAYOFMONTH('2022-02-21');
 ​
  1. 获取年份、季度、小时、分钟和秒钟的函数
 # 使用YEAR()函数返回指定日期对应的年份
 # ‘00~69’转换为‘2000~2069’,‘70~99’转换为‘1970~1999’
 # 输入语句如下:
 SELECT YEAR('22-02-03'),YEAR('96-02-03');
 # 使用QUARTER()函数返回指定日期对应的季度,
 # 1-3-311; 4-6-302 依次类推
 # 输入语句如下:
 SELECT QUARTER('22-01-01');
 ​
 # 使用MINUTE()函数返回指定时间的分钟值
 # MINUTE(time)返回time对应的分钟数,范围是0~59
 # 输入语句如下:
 SELECT MINUTE('22-02-03 10:10:03');
 # 使用SECOND()函数返回指定时间的秒值,输入语句如下:
 SELECT SECOND('10:05:03');

3. 操作时间函数

  1. 获取日期的指定值的函数EXTRACT(type FROM date)
 ​
 # 使用EXTRACT函数提取日期或者时间值,输入语句如下:
 SELECT EXTRACT(YEAR FROM '2022-07-02') AS col1 # 返回2022
 SELECT EXTRACT(YEAR_MONTH FROM '2022-07-12 01:02:03') AS col2 # 返回 202207
 SELECT EXTRACT(DAY_MINUTE FROM '2022-07-12 01:02:03') AS col3 # 返回 120102
  1. 时间和秒钟转换的函数
 # 使用TIME_TO_SEC函数将时间值转换为秒值,输入语句如下:
 SELECT TIME_TO_SEC('23:23:00');
 # 使用SEC_TO_TIME()函数将秒值转换为时间格式,输入语句如下:
 SELECT SEC_TO_TIME(2345),SEC_TO_TIME(2345)+0
 SELECT TIME_TO_SEC('23:23:00'), SEC_TO_TIME(84180)
 ​
  1. 计算日期和时间的函数
 # 使用DATE_ADD()和ADDDATE()函数执行日期加操作,输入语句如下:
 SELECT DATE_ADD('2022-12-31 23:59:59', INTERVAL 1 SECOND) AS col1
 SELECT ADDDATE('2022-12-31 23:59:59', INTERVAL 1 SECOND) AS col2
 SELECT DATE_ADD('2022-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) AS col3
 # 使用DATE_SUB和SUBDATE函数执行日期减操作,输入语句如下:
 SELECT DATE_SUB('2022-01-02', INTERVAL 31 DAY) AS col1
 SELECT SUBDATE('2022-01-02', INTERVAL 31 DAY) AS col2
 SELECT DATE_SUB('2022-01-01 00:01:00',INTERVAL '0 0:1:1' DAY_SECOND) AS col3
 # 使用ADDTIME进行时间加操作,输入语句如下:
 SELECT ADDTIME('2022-12-31 23:59:59','1:1:1'), ADDTIME('02:02:02', '02:00:00');
 # 使用SUBTIME()函数执行时间减操作,输入语句如下:
 SELECT SUBTIME('2022-12-31 23:59:59','1:1:1'), SUBTIME('02:02:02','02:00:00');
 # 使用DATEDIFF()函数计算两个日期之间的间隔天数,输入语句如下:
 SELECT DATEDIFF('2022-12-31 23:59:59','2022-12-30') AS col1
 # 小减去大的,就是负数
 SELECT DATEDIFF('2022-11-30 23:59:59','2022-12-31') AS col2
  1. 将日期和时间格式化的函数
 # 使用DATE_FORMAT()函数格式化输出日期和时间值,输入语句如下:
 SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') AS col1
 SELECT DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j') AS col2
 # 使用TIME_FORMAT()函数格式化输入时间值,输入语句如下:
 SELECT TIME_FORMAT('16:00:00', '%H %k %h %I %l')
 # 使用GET_FORMAT()函数显示不同格式化类型下的格式字符串,输入语句如下:
 SELECT GET_FORMAT(DATE,'EUR'), GET_FORMAT(DATE,'USA')
 # 在DATE_FORMAT()函数中,使用GET_FORMAT函数返回的显示格式字符串来显示指定的日期值,输入语句如下:
 SELECT DATE_FORMAT('2000-10-05 22:23:00', GET_FORMAT(DATE,'USA') )