MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как да добавите AM/PM към стойност на час или дата и час в MariaDB

MariaDB включва много функции, които ви позволяват да връщате стойности за време и дата и час в различни формати.

Две функции ви позволяват да форматирате частта от времето с помощта на 12-часов часовник, с обозначението AM/PM са DATE_FORMAT() и TIME_FORMAT() .

Има много спецификатори на формат, които могат да се използват с тези функции, но само няколко, които връщат обозначението AM/PM.

%r Спецификатор на формат

%r спецификаторът на формат се използва за форматиране на времето в 12-часов формат, последвано от обозначението AM/PM.

Пример:

SELECT DATE_FORMAT('2030-03-10 18:10:37', '%r'); 

Резултат:

+------------------------------------+| DATE_FORMAT('2030-03-10 18:10:37', '%r') |+---------------------------- --------------+| 18:10:37 |+-------------------------------------------------- +

Полученото време се показва така, сякаш е форматирано с помощта на следния форматен низ:'%I:%i:%S %p' .

Очевидно, дали връща AM или PM зависи от реалното време. Часове преди 12:00:00 върнете AM и времена след това върнете PM .

Ето какво се случва, ако променим времето, което идва преди 12:00:00 :

SELECT DATE_FORMAT('2030-03-10 06:10:37', '%r'); 

Резултат:

+------------------------------------+| DATE_FORMAT('2030-03-10 06:10:37', '%r') |+---------------------------- --------------+| 06:10:37 AM |+-------------------------------------------------- +

И двете DATE_FORMAT() и TIME_FORMAT() приемете %r спецификатор на формат, така че можем да използваме същия спецификатор на формат с TIME_FORMAT() функция:

SELECT TIME_FORMAT('06:10:37', '%r'); 

Резултат:

+-------------------------------+| TIME_FORMAT('06:10:37', '%r') |+------------------------------+| 06:10:37 AM |+------------------------------+

TIME_FORMAT() приема стойности за време, както и стойности за дата и час, докато DATE_FORMAT() приема само стойности за дата и час. Въпреки това, TIME_FORMAT() приема само спецификатори на формат за часове минути и секунди. Вижда се като %r връща часове, минути и секунди, това също се приема.

%p Спецификатор на формат

%p спецификаторът на формат е по-специфичен спецификатор на формат, който се използва единствено за представяне на обозначението AM/PM. Обикновено се използва във връзка с други спецификатори на формат за връщане на времето в персонализиран формат.

Както споменахме, %r спецификаторът на формат форматира времето, сякаш е форматирано с помощта на следния форматен низ:'%I:%i:%S %p' .

Нека използваме този низ изрично:

SELECT TIME_FORMAT('18:10:37', '%I:%i:%S %p'); 

Резултат:

+---------------------------------------+| TIME_FORMAT('18:10:37', '%I:%i:%S %p') |+------------------------ ---------------+| 18:10:37 |+---------------------------------------+ 

Така получаваме същия резултат като при използване на %r спецификатор на формат.

Въпреки това, едно предимство от използването на този метод е, че можем да конструираме изхода по наш собствен начин.

Например:

SELECT TIME_FORMAT('18:10:37', '%l:%i %p'); 

Резултат:

+-------------------------------------+| TIME_FORMAT('18:10:37', '%l:%i %p') |+---------------------------- ---------+| 18:10 |+----------------------------------------+

Тук използвахме %l за да върнете часовата част без водещата нула. Пропуснахме и частта от секундите от времето.

Вижте MariaDB Format Strings за пълен списък с спецификатори на формат, които могат да се използват с тези функции.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи МАЧ СРЕЩУ в MariaDB

  2. Обяснение на оператора MariaDB UNION

  3. Обяснено за оператора на MariaDB INTERSECT

  4. Cloud Disaster Recovery за MariaDB и MySQL

  5. Как CONCAT() работи в MariaDB