Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: จัดรูปแบบเวลาให้ am/pm เป็นตัวเล็กด้วย LOWER() และ DATE_FORMAT()

การแสดงเวลา 12 ชั่วโมงพร้อม am/pm ตัวเล็ก

ฟังก์ชัน DATE_FORMAT() กับ format %l:%i %p แสดงเวลา 12 ชั่วโมงพร้อม AM/PM ตัวใหญ่ ใช้ LOWER() ห่อหุ้มเพื่อแปลงเป็นตัวเล็ก

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มเวลา:

mysql> CREATE TABLE formatTime (
    -> LoginTime TIME
    -> );
Query OK, 0 rows affected (0.56 sec)

mysql> INSERT INTO formatTime VALUES('12:40:34'),('14:10:58'),('16:56:40'),('10:12:14');
Query OK, 4 rows affected (0.12 sec)

ข้อมูลดิบ (24 ชั่วโมง):

mysql> SELECT * FROM formatTime;
+-----------+
| LoginTime |
+-----------+
| 12:40:34  |
| 14:10:58  |
| 16:56:40  |
| 10:12:14  |
+-----------+
4 rows in set (0.00 sec)

จัดรูปแบบ 12 ชั่วโมง am/pm ตัวเล็ก:

mysql> SELECT LOWER(DATE_FORMAT(LoginTime, '%l:%i %p')) FROM formatTime;
+------------------------------------------+
| LOWER(DATE_FORMAT(LoginTime,'%l:%i %p')) |
+------------------------------------------+
| 12:40 pm                                 |
| 2:10 pm                                  |
| 4:56 pm                                  |
| 10:12 am                                 |
+------------------------------------------+
4 rows in set (0.04 sec)

คำอธิบาย Format Specifiers

Codeความหมายตัวอย่าง
%lชั่วโมง 1-12 (ไม่มี leading zero)12, 2, 4, 10
%hชั่วโมง 01-12 (มี leading zero)12, 02, 04, 10
%iนาที 00-5940, 10, 56, 12
%pAM/PM ตัวใหญ่PM, PM, PM, AM

ทางเลือกอื่น

-- ใช้ DATE_FORMAT พร้อม format ตัวเล็กโดยตรง (MySQL ไม่มี specifier ตัวเล็ก)
-- ต้องใช้ LOWER() หรือ CONVERT ... USING utf8mb4 COLLATE utf8mb4_bin (ซับซ้อน)

-- แสดงวินาทีด้วย
SELECT LOWER(DATE_FORMAT(LoginTime, '%l:%i:%s %p')) FROM formatTime;
-- 12:40:34 pm, 2:10:58 pm, 4:56:40 pm, 10:12:14 am

หมายเหตุ: %l (L เล็ก) ไม่มี leading zero, %h (h เล็ก) มี leading zero เลือกตามความชอบ