MySQL|MySQL 中 `DATE_FORMAT()` 函数的使用

ops/2024/10/22 18:27:38/

文章目录

        • 概述
        • 方法签名
        • 格式化字符
        • 基本用法
        • 实际应用案例
          • 示例1:显示日期和星期几
          • 示例2:仅显示日期
          • 示例3:按周统计订单数量
        • 注意事项
        • 结论

概述

DATE_FORMAT() 是 MySQL 中的一个内置函数,用于格式化日期和时间数据。它可以根据指定的格式字符串来展示日期和时间,使得数据更容易阅读和理解。本文档将详细介绍 DATE_FORMAT() 函数的使用方法及其常见应用场景。

方法签名
DATE_FORMAT(date, format)
  • 参数:
    • date: 日期或时间的表达式,可以是一个日期时间字段或常量。
    • format: 格式化字符串,用于定义日期和时间的具体格式。
格式化字符

DATE_FORMAT() 支持多种格式化字符,这些字符定义了日期和时间的不同部分。以下是一些常用的格式化字符:

格式化字符描述
%Y年份,4位数字(例如:2024)
%y年份,2位数字(例如:24)
%m月份,2位数字(例如:09)
%b月份的缩写(例如:Sep)
%M月份的全称(例如:September)
%d日,2位数字(例如:18)
%H小时(24小时制),2位数字(例如:16)
%h%I小时(12小时制),2位数字(例如:04)
%i分钟,2位数字(例如:26)
%s秒,2位数字(例如:42)
%pAM 或 PM(仅限于12小时制)
%W星期几的全称(例如:Wednesday)
%w星期几,数字表示(例如:3 表示星期三)
%j一年中的第几天(1 到 366)
%U一年中的第几周(00 到 53)
%u一年中的第几周(01 到 53)
基本用法

假设有一个名为 orders 的表,其中有一个 created_at 的字段,存储了订单创建的时间戳。下面是如何使用 DATE_FORMAT() 函数来格式化这个时间戳的例子:

SELECT created_at,DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') AS formatted_date
FROM orders;

上述查询将返回 created_at 列,并将每个日期时间值格式化为 “YYYY-MM-DD HH:MM:SS” 格式。

实际应用案例
示例1:显示日期和星期几

假设你需要查询订单创建日期及其对应的星期几:

SELECT created_at,DATE_FORMAT(created_at, '%Y-%m-%d %W') AS formatted_date_and_weekday
FROM orders;
示例2:仅显示日期

如果只需要日期部分,可以使用以下格式:

SELECT DATE_FORMAT(created_at, '%Y-%m-%d') AS date_only
FROM orders;
示例3:按周统计订单数量

可以使用 DATE_FORMAT() 函数来获取订单创建的周数,并进行统计:

SELECT DATE_FORMAT(created_at, '%x-%v') AS week,COUNT(*) AS order_count
FROM orders
GROUP BY week;

这里 %x 表示年份的最后两位,%v 表示一年中的第几周。

注意事项
  • 在使用 DATE_FORMAT() 时,请确保提供的日期时间是有效的。如果日期时间无效,可能会导致错误或不符合预期的结果。
  • DATE_FORMAT() 的格式化字符串区分大小写,不同的格式化字符具有不同的含义。
  • 在设计数据库查询时,考虑到性能因素,如果频繁使用 DATE_FORMAT(),建议考虑使用索引或其他优化手段。
结论

DATE_FORMAT() 函数是 MySQL 中一个非常实用的功能,可以帮助开发者以可定制的方式展示日期和时间数据。通过掌握 DATE_FORMAT() 的使用方法及其格式化字符,可以更灵活地处理和展示时间相关数据。


http://www.ppmy.cn/ops/112816.html

相关文章

C语言——静态链表和动态链表

一、静态链表 创建链表中的一个节点,用struct来创建,其中包含两个部分:数据域和指针域。 创建三个结点,node1、node2、node3,分别赋值,初始化为NULL。接着就是将这些节点进行连接,组成链表。连…

Linux权限理解【Shell的理解】【linux权限的概念、管理、切换】【粘滞位理解】

目录 Linux权限理解1.Xshell命令以及运行原理2.linux权限的学习2.1linux权限的切换2.2linux权限的概念2.3linux权限管理2.3.1linux中文件访问者的分类2.3.2文件类型和访问权限(文件属性)2.3.2.1文件类型2.3.2.2文件权限拓展—文件的起始权限 2.3.3文件权限管理2.3.4文件权限的应…

LabVIEW多语言支持优化

遇到的LabVIEW多语言支持问题,特别是德文显示乱码以及系统区域设置导致的异常,可能是由编码问题或区域设置不匹配引起的。以下是一些可能的原因及解决方案: 问题原因: 编码问题:LabVIEW内部使用UTF-8编码,但…

uniapp 做一个查看图片的组件,图片可缩放移动

因为是手机端,所以需要触摸可移动,双指放大缩小。 首先在components里建个组件 查看图片使用 uni-popup 弹窗 要注意 transform的translate和scale属性在同一标签上不会一起生效 移动就根据触摸效果进行偏移图片 缩放就根据双指距离的变大变小进行缩…

什么是外贸专用路由器?

一、外贸专用路由器的显著特点 全球兼容性 外贸专用路由器支持多种国际通信标准和频段,能够无缝连接不同国家和地区的网络,从而避免因地域限制导致的网络问题。这种全球兼容性确保了外贸企业在全球范围内的网络部署更加顺畅,让企业在任何角落…

大模型的实践应用29-大语言模型的RLHF(人类反馈强化学习)的具体应用与原理介绍

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用29-大语言模型的RLHF(人类反馈强化学习)的具体应用与原理介绍。在当今人工智能发展的浪潮中,大语言模型(Large Language Models, LLMs)凭借其强大的语言理解和生成能力,成为了研究与应用的热点。而在这股浪潮中,一…

Git进阶(十五):Git LFS 使用详解

文章目录 一、介绍二、Git LFS 使用步骤三、场景示例四、拓展阅读 一、介绍 Git LFS (Large File Storage) 是一个 Git 扩展,它使 Git 更适合处理大型文件,如音频、视频、图像或任何其他二进制大文件。Git LFS 替换仓库中的大文件为文本指针文件&#x…

Expo和Flutter比较

Expo 和 Flutter 比较: Expo 和 Flutter 都是跨平台应用开发框架,但它们在技术架构、生态系统、开发体验等方面存在一些显著差异。以下是两者的优劣势比较: 1. 技术架构 Expo: 基于 React Native:Expo 是 React Nati…