您好!欢迎访问家园网-www.jy.wang!

家园网

%r 12 小时制时间 (hh:mm:ss AM/PM),这里的AM和PM是啥

网络 作者:本站 点击:

AM 和 PM 是拉丁语的缩写,用于区分 12 小时制中的上下午。

基本含义

缩写

拉丁语全称

中文含义

时间段

AM

Ante Meridiem

中午之前

00:00 - 11:59(午夜到中午)

PM

Post Meridiem

中午之后

12:00 - 23:59(中午到午夜)



  • Ante = 在...之前(如 antecedent 前因)

  • Post = 在...之后(如 postpone 推迟)

  • Meridiem = 中午(midday)

12 小时制 vs 24 小时制对比

24小时制12小时制显示结果
00:0012:00 AM午夜(凌晨12点)
01:001:00 AM凌晨1点
11:0011:00 AM上午11点
12:0012:00 PM中午12点(⚠️ 易错点)
13:001:00 PM下午1点
23:0011:00 PM晚上11点

⚠️ 常见误区

最容易搞错的是 12:00

sql

-- 正确理解:12:00 AM = 午夜(一天开始) → 00:0012:00 PM = 中午 → 12:00-- 错误理解(很多人会犯):12:00 AM ≠ 中午 ❌12:00 PM ≠ 午夜 ❌

记忆技巧:

  • 中午(noon)是太阳最高的时候,在中午之后(Post Meridiem)就是 PM

  • 所以 12:00 PM = 中午

  • 反过来,12:00 AM = 午夜

MySQL 中的使用示例

sql

-- 使用 %r 格式化时间SELECT DATE_FORMAT('2025-04-15 08:30:00', '%r') AS time_12h;-- 结果:08:30:00 AMSELECT DATE_FORMAT('2025-04-15 14:45:00', '%r') AS time_12h;-- 结果:02:45:00 PMSELECT DATE_FORMAT('2025-04-15 00:00:00', '%r') AS midnight;-- 结果:12:00:00 AMSELECT DATE_FORMAT('2025-04-15 12:00:00', '%r') AS noon;-- 结果:12:00:00 PM

MySQL 中相关的格式符对比

格式符输出示例说明
%r02:30:45 PM12小时制完整时间(带 AM/PM)
%T14:30:4524小时制完整时间
%h0212小时制小时(01-12)
%H1424小时制小时(00-23)
%i30分钟
%s45
%pPM仅 AM/PM 标识

组合使用示例

sql

-- 手动组合 12 小时制时间(等同于 %r)SELECT CONCAT(
    DATE_FORMAT(NOW(), '%h:%i:%s'),
    ' ',
    DATE_FORMAT(NOW(), '%p')) AS custom_time_12h;-- 直接使用 %r(更简洁)SELECT DATE_FORMAT(NOW(), '%r') AS time_12h;

实际应用场景

sql

-- 美式订单时间显示(常用于面向美国用户的系统)SELECT 
    order_id,
    DATE_FORMAT(order_time, '%r') AS order_time_usFROM orderform;-- 输出示例:-- order_id | order_time_us-- 1001     | 02:30:15 PM-- 1002     | 09:15:22 AM

总结

  • AM = Ante Meridiem(中午之前)= 午夜到中午

  • PM = Post Meridiem(中午之后)= 中午到午夜

  • 12:00 AM = 午夜(一天开始)

  • 12:00 PM = 中午(⚠️ 最容易记错)

  • %r 是 MySQL 中直接输出带 AM/PM 的 12 小时制时间的便捷格式符


标签: