各种数据库都提供了很多日期格式化的函数,MySQL就有date_format,碰巧前几天,同事问到个问题,"2025-11-01 00:01:21"的日期,怎么得到"2025-11-01 00:01:2"和"2025-11-01 00:01"?
MySQL中,date_format()函数用于将日期或时间值格式化为指定的字符串格式。语法格式如下,
代码语言:javascript复制DATE_FORMAT(date, format)其中,date是一个日期或时间类型的值,例如DATE、TIME、TIMESTAMP或字符串表示的日期或时间。format是一个字符串,指定了输出的日期或时间的格式,如下的是一些常见的格式符,
代码语言:javascript复制常见的格式符
以下是一些常用的格式符:
%Y:四位数的年份(2023)
%y:两位数的年份(23)
%M:月份的英文全称(January)
%m:两位数的月份(01)
%b:月份的英文缩写(Jan)
%d:两位数的日期(01)
%e:位数的日期(1)
%H:24小时制的小时(23)
%h:12小时制的小时(11)
%i:分钟(59)
%s:秒(59)
%p:上午或下午(PM)使用date_format()函数可以将日期或时间值转换为所需的字符串格式,但需要注意,确保日期或时间值是有效的,否则可能返回`NULL',格式字符串中的非格式符部分将按原样输出,如上面的"年"、"月"、"日"等。
因此,针对上面的需求,如需得到"2025-11-01 00:01:2",可以用这条语句,
代码语言:javascript复制SELECT LEFT(DATE_FORMAT('2025-11-01 00:01:21', '%Y-%m-%d %H:%i:%s'), 18);如需得到"2025-11-01 00:01",可以用这条语句,
代码语言:javascript复制SELECT date format('2025-11-01 00:01:21','%Y-%m-%d %H:%i')可以再多想一下,"2025-11-01 00:01:2"的含义是每10秒的聚合统计,"2025-11-01 00:01"是每分钟的聚合统计,在进行大数据量的统计分析时,这种操作还是很有用的,可能挖掘出很多的问题。