MySQL中的DATE_FORMAT时间函数

前言

MySQL可以使用DATE_FORMAT获取日期字段中的年月

DATE_FORMAT时间函数

1、 建立一个数据表

sql 复制代码
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for userloginlog
-- ----------------------------
DROP TABLE IF EXISTS `userloginlog`;
CREATE TABLE `userloginlog`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `userId` bigint(20) NULL DEFAULT NULL,
  `isDelete` int(11) NULL DEFAULT 0,
  `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_userId_appId`(`userId` ASC, `appId` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 407701224 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

SET FOREIGN_KEY_CHECKS = 1;

可以操作createTime

csharp 复制代码
select count(*) from userloginlog u where DATE_FORMAT(u.createTime,'%Y') = '2024'

取出createTime中等于2024的年数据

2、 格式化时间

sql 复制代码
SELECT DATE_FORMAT(u.createTime,'%Y-%m') as month from userloginlog u

3、 统计月份数据

sql 复制代码
 SELECT DATE_FORMAT(u.createTime,'%m') as month, count(*) from userloginlog u where DATE_FORMAT(u.createTime,'%Y') = '2024'

GROUP BY month

4、 精确到天

sql 复制代码
  SELECT DATE_FORMAT(u.createTime,'%Y-%m-%d')  from userloginlog u
  
格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

总结

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。

相关推荐
ClickHouseDB20 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_6399069420 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
学长毕设21 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
滴滴答答哒21 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
时间售卖铺21 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw21 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社1 天前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙1 天前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3761 天前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02141 天前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法