前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DATE_FORMAT() 函数解读【MYSQL】

DATE_FORMAT() 函数解读【MYSQL】

原创
作者头像
一个风轻云淡
发布2024-05-04 20:12:11
8700
发布2024-05-04 20:12:11

MySQL中的DATE_FORMAT()函数是一个非常有用的工具,它允许你按照指定的格式显示日期/时间值。这个函数非常灵活,可以处理各种日期和时间格式的需求。

用于将指定的日期格式化为给定的格式值,即将给出一个日期,该函数将该日期格式化为指定的格式参数。

DATE_FORMAT()函数的基本语法

DATE_FORMAT()函数的基本语法如下:

代码语言:sql
复制
DATE_FORMAT(date, format)
  • date:是你要格式化的日期或时间值。
  • format:是你希望日期或时间值呈现的格式。

格式

描述

示例

%a

缩写的工作日名称

Sun, Mon, Tue, Wed, Thu, Fri, Sat

%b

缩写的月份名称

Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec

%c

数字表示的月份

1, 2, ..., 12

%D

月份中的某天,带有后缀

1st, 2nd, 3rd, 4th, ..., 31st

%e

月份中的某天,不带前导零

1, 2, ..., 31

%f

微秒部分

000000 到 999999

%H

小时(24小时制)

00, 01, ..., 23

%i

分钟

00, 01, ..., 59

%j

一年中的第几天

001, 002, ..., 366

%M

完整的月份名称

January, February, ..., December

%p

上午或下午标记

AM, PM

%S

00, 01, ..., 59

%U

周数(以周日为一周的第一天)

00, 01, ..., 53

%W

完整的工作日名称

Sunday, Monday, ..., Saturday

%Y

4位数的年份

2023

注意事项

  • DATE_FORMAT()函数对NULL值返回NULL。
  • 如果date参数不是一个有效的日期或时间值,函数将返回NULL。
  • 使用DATE_FORMAT()函数时,请确保你提供的格式字符串是有效的,否则可能会导致不可预测的结果。

示例

示例1:格式化日期为“年-月-日”的形式
代码语言:sql
复制
SELECT DATE_FORMAT(event_date, '%Y-%m-%d') AS formatted_date FROM events;

这将返回每个事件的日期,格式为“年-月-日”。

示例2:格式化日期为“月/日/年”的形式
代码语言:sql
复制
SELECT DATE_FORMAT(event_date, '%m/%d/%Y') AS formatted_date FROM events;

这将返回每个事件的日期,格式为“月/日/年”。

示例3:包含时间的格式化

如果event_date是一个包含时间的日期时间列,你可以这样格式化它:

代码语言:sql
复制
SELECT DATE_FORMAT(event_date, '%Y-%m-%d %H:%i:%s') AS formatted_datetime FROM events;

这将返回每个事件的日期和时间,格式为“年-月-日 时:分:秒”。

示例4:包含时间的格式化条件选择

代码语言:sql
复制
SELECT id, `fund_type`, `fund_name`, `fund_code`, `lockup_period`
		, `revenue_performance`, `tag`, `tag_black`, `time`, `rank`
		, update_time, create_time
	FROM stable_fund
	WHERE DATE_FORMAT(TIME, '%Y-%m-%d') = '2024-04-29'

WHERE DATE_FORMAT(TIME, '%Y-%m-%d') = '2024-04-29'这个条件使用了DATE_FORMAT函数来格式化time列的值,只提取日期部分(即年-月-日)。然后,它会比较这个格式化后的日期是否等于'2024-04-29'。

示例5:包含时间的格式化分组使用

代码语言:sql
复制
SELECT id, tab, fund_name, fund_code, fund_deadline_time, fund_manger, fund_tags, fund_slogan, `time`, `rank`, update_time, create_time 
FROM new_fund 
WHERE (fund_code = 020872 AND `time` BETWEEN '2024-03-13' AND '2024-03-15') 
GROUP BY DATE_FORMAT(`time`, '%Y-%m-%d');

GROUP BY DATE_FORMAT(time, '%Y-%m-%d')查询的结果将按照time列的日期部分(即年-月-日)进行分组。这意味着,如果有多个记录具有相同的日期(但可能具有不同的时间),那么它们将被视为一个组,并且对于每个组,查询将只返回一行结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DATE_FORMAT()函数的基本语法
  • 注意事项
  • 示例
    • 示例1:格式化日期为“年-月-日”的形式
      • 示例2:格式化日期为“月/日/年”的形式
        • 示例3:包含时间的格式化
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档