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() 函数用于以不同的格式显示日期/时间数据。

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
小白男神2 天前
MySQL进阶学习四(存储过程、游标、触发器)
mysql
大勇前进2 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
yuzhi_liu2 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile2 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白802 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端