MariaDB bao gồm nhiều chức năng cho phép bạn trả về giá trị thời gian và ngày tháng ở nhiều định dạng khác nhau.
Hai chức năng cho phép bạn định dạng phần thời gian bằng cách sử dụng đồng hồ 12 giờ, với bộ chỉ định AM / PM là DATE_FORMAT()
và TIME_FORMAT()
.
Có nhiều mã định dạng có thể được sử dụng với các hàm này, nhưng chỉ một số trả về mã định dạng AM / PM.
%r
Định dạng chỉ định
%r
định dạng định dạng được sử dụng để định dạng thời gian ở định dạng 12 giờ, tiếp theo là ký hiệu AM / PM.
Ví dụ:
SELECT DATE_FORMAT('2030-03-10 18:10:37', '%r');
Kết quả:
+------------------------------------------+ | DATE_FORMAT('2030-03-10 18:10:37', '%r') | +------------------------------------------+ | 06:10:37 PM | +------------------------------------------+
Thời gian kết quả được hiển thị như thể nó đã được định dạng bằng chuỗi định dạng sau:'%I:%i:%S %p'
.
Rõ ràng, nó có trả về AM
hay không hoặc PM
phụ thuộc vào thời gian thực tế. Thời gian trước 12:00:00
trả về AM
và thời gian sau đó trả về PM
.
Đây là những gì sẽ xảy ra nếu chúng tôi thay đổi thời gian đến trước 12:00:00
:
SELECT DATE_FORMAT('2030-03-10 06:10:37', '%r');
Kết quả:
+------------------------------------------+ | DATE_FORMAT('2030-03-10 06:10:37', '%r') | +------------------------------------------+ | 06:10:37 AM | +------------------------------------------+
Cả DATE_FORMAT()
và TIME_FORMAT()
chấp nhận %r
mã định dạng, vì vậy chúng tôi có thể sử dụng cùng một mã định dạng với TIME_FORMAT()
chức năng:
SELECT TIME_FORMAT('06:10:37', '%r');
Kết quả:
+-------------------------------+ | TIME_FORMAT('06:10:37', '%r') | +-------------------------------+ | 06:10:37 AM | +-------------------------------+
TIME_FORMAT()
chấp nhận giá trị thời gian cũng như giá trị ngày giờ, trong khi DATE_FORMAT()
chỉ chấp nhận các giá trị ngày và giờ. Tuy nhiên, TIME_FORMAT()
chỉ chấp nhận các chỉ định định dạng cho giờ phút và giây. Xem dưới dạng %r
trả về giờ, phút và giây, điều này cũng được chấp nhận.
%p
Định dạng chỉ định
%p
công cụ định dạng là một công cụ chỉ định định dạng cụ thể hơn chỉ được sử dụng để đại diện cho bộ chỉ định AM / PM. Nó thường được sử dụng cùng với các chỉ định định dạng khác để trả về thời gian ở định dạng tùy chỉnh.
Như đã đề cập, %r
công cụ định dạng định dạng thời gian như thể nó đã được định dạng bằng chuỗi định dạng sau:'%I:%i:%S %p'
.
Hãy sử dụng chuỗi đó một cách rõ ràng:
SELECT TIME_FORMAT('18:10:37', '%I:%i:%S %p');
Kết quả:
+----------------------------------------+ | TIME_FORMAT('18:10:37', '%I:%i:%S %p') | +----------------------------------------+ | 06:10:37 PM | +----------------------------------------+
Vì vậy, chúng tôi nhận được kết quả tương tự như khi sử dụng %r
định dạng.
Tuy nhiên, một lợi ích của việc sử dụng phương pháp này là chúng ta có thể xây dựng đầu ra theo cách tùy chỉnh của riêng mình.
Ví dụ:
SELECT TIME_FORMAT('18:10:37', '%l:%i %p');
Kết quả:
+-------------------------------------+ | TIME_FORMAT('18:10:37', '%l:%i %p') | +-------------------------------------+ | 6:10 PM | +-------------------------------------+
Ở đây, chúng tôi đã sử dụng %l
để trả về phần giờ không có số 0 ở đầu. Chúng tôi cũng bỏ qua phần giây của thời gian.
Xem Chuỗi định dạng MariaDB để biết danh sách đầy đủ các mã định dạng có thể được sử dụng với các chức năng này.