当前位置: 首页 > news >正文

设计企业网店推广策略seo精准培训课程

设计企业网店推广策略,seo精准培训课程,软件技术专业介绍公布,网站制作价格 上海前言 在 MySQL 中,处理日期和时间是非常常见的需求,MySQL中内置了大量的日期和时间函数,能够灵活、方便地处理日期和时间数据,本节就简单介绍一下 MySQL中内置的日期和时间函数,以便更好地利用这些函数来处理日期和时间…

image

前言

  在 MySQL 中,处理日期和时间是非常常见的需求,MySQL中内置了大量的日期和时间函数,能够灵活、方便地处理日期和时间数据,本节就简单介绍一下 MySQL中内置的日期和时间函数,以便更好地利用这些函数来处理日期和时间数据。

获取当前日期和时间

  获取当前时刻的时间就是获取程序运行的那一刻与时间相关的数据,比如年月日、时分秒等信息。

序号函数简要说明
1now()用于获取当前的日期和时间,其返回值格式为 YYYY-MM-DD HH:MM:SS
该函数在整个查询过程中保持不变,可以确保所有记录的时间戳一致,因此被广泛用于记录数据的创建时间或更新时间。
2curdate()用于获取当前的日期,其返回值格式为 YYYY-MM-DD。该函数在需要仅获取日期信息时非常有用,因为它可以避免对时间部分的额外处理。
3curtime()用于获取当前的时间,其返回值格式为 HH:MM:SS。该函数在需要仅获取时间信息时非常有用,例如在记录事件发生的具体时间或计算时间间隔时。
4current_timestamp()用于获取当前的日期和时间,其返回值格式为 YYYY-MM-DD HH:MM:SS
5sysdate()用于获取执行时的日期和时间。
INSERT INTO orders (order_id, order_time) VALUES (1, NOW());
SELECT COUNT(*) FROM sales WHERE sale_date = CURDATE();
SELECT CURTIME();

日期时间格式化与转换

  我们知道同一个日期时间会有多种不同的表示方式,有的时候需要在不同格式之间相互转换。在 MySQL 中,可以使用日期函数将日期和时间数据从一种格式转换为另一种格式,以下是一些常用的日期格式转换函数:

序号函数简要说明
1date_format(datetime,format)用于将日期和时间值按照指定的格式进行格式化,其返回值为一个字符串,在需要将日期和时间以特定格式展示时非常有用。
该函数支持多种格式化选项,可以根据需求灵活定制日期时间的显示格式。
2time_format(time,format)按照指定的格式format来格式化日期date
3STR_TO_DATE(str, format)用于将字符串转换为日期或日期时间值,其返回值为一个日期或日期时间值,在需要将非标准格式的字符串日期转换为标准的日期格式时非常有用。
4FROM_DAYS()将天数转换为日期
5TIME_TO_SEC(time)将time转化为秒并返回结果值,转化的公式为:小时*3600 + 分钟*60 + 秒。
6SEC_TO_TIME(seconds)将seconds描述转化为包含小时、分钟和秒的时间

  在上述方法中,其中 datetime 表示要被转换的具体的日期时间,format 表示要转换成的格式,可选的格式如下:

格式描述格式描述格式描述
%Y4位数的年%T返回当前的时分秒, 24-小时 (hh:mm:ss)
%b月份对应的英文缩写%M月份对应的英文全称%m01-12的月
%c1-12的月份数值%d01-31的某月里面的第几天%e1-31的某月里面的第几天
%D用th后缀表示某月中的第几天%j001-366的一年中的第几天%a星期几对应的英文缩写
%W星期几对应的英文全称%H00-23的小时%h01-12的小时
%i00-59的分钟%S秒(00-59)%f微秒
SELECT DATE_FORMAT('2022-11-09 12:34:56', '%Y-%m-%d %H:%i:%s');

日期时间计算(加减)

  有的时候我们也需要对日期之间进行运算,比如要获取今天往前7天对应的日期,或者今天往后13天对应的日期,可以去翻日历,也可以去数数,但是这些方法肯定都不是最直接的方法,所以需要日期之间的运算。MySQL 提供了一些日期函数,可以使用这些函数来执行日期加法、日期减法等操作。以下是一些常用的日期计算函数:

序号函数简要说明
1date_add(date, INTERVAL num unit)用于在日期上添加指定的时间间隔,其返回值为一个新的日期值,常用于计算未来的日期。
2ADDDATE(date, INTERVAL num unit)在日期上加上指定的时间间隔。
3ADDTIME(time1,time2)返回time1加上time2的时间
4date_sub(date, INTERVAL num unit)用于从日期中减去指定的时间间隔,其返回值为一个新的日期值,常用于计算过去的日期。
5SUBDATE(date, INTERVAL num unit)从日期中减去指定的时间间隔。
6SUBTIME(time1,time2)返回time1减去time2后的时间。
7datediff(date1,date2)用于计算两个日期之间的天数差,其返回值为一个整数,表示两个日期之间的天数差,常用于计算时间间隔,例如任务的持续时间等。
8TIMEDIFF(time1, time2)计算两个时间之间的时间差
9TIMESTAMPDIFF(unit, expr1, expr2)计算两个日期之间的时间差,以指定的单位返回。
10TIMESTAMPADD(unit, interval, datetime_expr)给日期时间添加指定单位的时间
11TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)返回两个日期时间表达式的时间差,使用指定的单位

  在上述方法中,date表示具体的日期时间,interval是一个固定的参数,unit 表示要返回的单独的部分,unit 值可以是下列的值:

unit说明unit说明unit说明
yearmonthday
hour小时minute分钟second
week周数,全年第几周
SELECT DATE_ADD('2022-11-09', INTERVAL 10 DAY);
SELECT DATE_SUB('2022-11-09', INTERVAL 10 DAY);
SELECT DATEDIFF('2022-11-09', '2023-06-17');
SELECT TIMESTAMPDIFF(MONTH, '2022-01-01', '2023-12-31');

日期时间部分提取

序号函数简要说明
1YEAR(date)用于获取日期所在的年份,其返回值为一个整数,表示年份。在实际应用中,常用于按年份对数据进行分组或筛选。
2MONTH(date)用于获取日期对应的月份,其返回值为一个整数,表示月份(1-12)。在实际应用中,在按月份对数据进行分组或筛选时非常有用。
3DAY(date)用于从日期或日期时间值中提取天数部分,其返回值为一个整数,表示月份中的天数,取值范围1-31。
4HOUR(time)用于从时间或日期时间值中提取小时部分,其返回值为一个整数,表示小时,取值范围0-23。
5MINUTE(time)用于从时间或日期时间值中提取分钟部分,其返回值为一个整数,表示分钟,取值范围0-59。
6SECOND(time)用于从时间或日期时间值中提取秒部分,其返回值为一个整数,表示秒,取值范围0-59。
7DATE(date)用于提取日期或日期时间的日期部分
8MONTHNAME(date)用于获取日期所在月份的英文名称。
9DAYNAME(date)用于获取给定日期对应星期的英文名称。
10WEEKDAY(date)用于获取日期对应的一周中的索引值。0表示星期一,1表示星期二,以此类推。
11QUARTER(date)用于获取日期对应的季度,范围为1~4。
12WEEK(date)用于获取给定日期所在年的第几周。
13WEEKOFYEAR(date)用于获取给定日期所在年份的第几周。
14DAYOFYEAR(date)用于获取日期是一年中的第几天
15DAYOFMONTH(date)用于获取日期位于所在月份的第几天
16DAYOFWEEK(date)用于获取日期对应的一周中的索引值。1表示星期日,2表示星期一,以此类推。
17YEARWEEK(date)用于获取日期所在的年份和周数。
18LAST_DAY(date)用于获取日期所在月份的最后一天的日期。
SELECT YEAR('2022-11-09 12:34:56');
SELECT MONTH('2022-11-09 12:34:56');
SELECT DAY('2022-11-09 12:34:56');
SELECT HOUR('2022-11-09 12:34:56');
SELECT MINUTE('2022-11-09 12:34:56');
SELECT SECOND('2022-11-09 12:34:56');

时间戳转换

序号函数简要说明
1FROM_UNIXTIME(unix_timestamp[, format])将UNIX时间戳转换为可读的日期格式。
2UNIX_TIMESTAMP(date)将日期转换为UNIX时间戳。
SELECT FROM_UNIXTIME(1672444800);
SELECT UNIX_TIMESTAMP(NOW());

其他有用的函数

函数简要说明
MAKEDATE(year,n)针对给定年份与所在年份中的天数返回一个日期。
MAKETIME(hour,minute,second)将给定的小时、分钟和秒组合成时间并返回。
SELECT MAKEDATE(2025,1);

附录

获取本月第一天

SELECT DATE_ADD(CURDATE(), INTERVAL -DAY(CURDATE()) + 1 DAY);
SELECT CONCAT(DATE_FORMAT(CURDATE(), '%Y-%m'), '-01');

查询今日、昨日、周、上月、本月数据

-- 今天
SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());-- 昨天
SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) <= 1 AND TO_DAYS(NOW()) - TO_DAYS(时间字段名) > 0;-- 近7天
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名);-- 查询当前这周的数据(注意:获取周是从周日至周六计算的,与我们国内周一至周日的习惯不同)
SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段名, '%Y-%m-%d')) = YEARWEEK(now());-- 查询上周的数据(同上)
SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段名, '%Y-%m-%d')) = YEARWEEK(now()) - 1;-- 近30天
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名);查询当前月份的数据 
-- SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y-%m') = DATE_FORMAT(now(),'%Y-%m');
-- SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段名, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m' );-- 上一月数据
SELECT * FROM 表名 WHERE PERIOD_DIFF(date_format(now( ), '%Y%m') , date_format(时间字段名, '%Y%m')) = 1;-- 查询本季度数据
SELECT * FROM 表名 WHERE QUARTER(时间字段名) = QUARTER(now());-- 查询上季度数据
SELECT * FROM 表名 WHERE QUARTER(时间字段名)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));-- 查询本年数据
SELECT * FROM 表名 WHERE YEAR(时间字段名)=YEAR(NOW());-- 查询上年数据
SELECT * FROM 表名 WHERE year(时间字段名)=year(date_sub(now(),interval 1 year));-- 查询距离当前现在6个月的数据
SELECT * FROM 表名 WHERE 时间字段名 between date_sub(now(), interval 6 month) and now();

小结

  MySQL 中的常见日期函数,包括日期函数的介绍、日期格式转换、日期计算、日期比较以及其他日期函数。这些日期函数可以帮助我们更好地处理和操作日期和时间数据,提高数据库的查询和分析效率。熟练掌握这些日期函数,将有助于我们在 MySQL 中更好地处理日期和时间相关的业务需求。
image

http://www.cadmedia.cn/news/15513.html

相关文章:

  • 离退休干部网站建设优化大师官网下载安装
  • 学校网站建设 论文呢seo优化报告
  • 武汉正规的做网站公司网站优化
  • 青岛网站建设设计公司网站维护合同
  • 唐山网站建设培训seo优化代理
  • 江苏卓业建设网站广州抖音推广公司
  • 市政府门户网站seo常用分析的专业工具
  • 网站商城建设合同免费下载广州seo推广营销
  • 建设门户网站的可行性分析保定百度seo排名
  • 网上学习做网站淘宝运营培训多少钱
  • 塘厦湖南专业seo公司
  • 建设品牌公司网站正规网站优化公司
  • 网站建设意见建议免费发布广告信息平台
  • 智能网站建设加工磁力链
  • 建设网站的需求分析全网热搜榜
  • 北京火车站建站时间seo深度解析
  • 青岛搜客网站建设公司品牌策划与推广方案
  • 建设网站意义谷歌seo和百度seo区别
  • 天津网站优化公司哪家专业网站推广优化服务
  • 临沂网站建设服务当日网站收录查询统计
  • 网站建设的常见技术有哪些百度知道官网
  • 泰安新浪乐居房产网盛大游戏优化大师
  • 如何建设自己的淘宝客网站友情链接网站
  • 网络推广如何做网络优化工程师吃香吗
  • 濮阳市建设局网站成人大专
  • 西安哪家公司制作响应式网站建设怎么建立网站卖东西
  • 手机腾讯网seo排名官网
  • html做动态网站需要哪些软件正在播网球比赛直播
  • ASP 动态网站建设搜索引擎大全全搜网
  • 网站建设完善方案线上推广怎么做