sql >> Databáze >  >> RDS >> MariaDB

Jak přidat AM/PM k hodnotě času nebo data a času v MariaDB

MariaDB obsahuje mnoho funkcí, které vám umožňují vracet hodnoty času a data a času v různých formátech.

Dvě funkce vám umožňují formátovat časovou část pomocí 12hodinového formátu, přičemž označení AM/PM je DATE_FORMAT() a TIME_FORMAT() .

Existuje mnoho specifikátorů formátu, které lze použít s těmito funkcemi, ale pouze několik z nich vrací označení AM/PM.

%r Specifikátor formátu

%r specifikátor formátu se používá k formátování času ve 12hodinovém formátu, za kterým následuje označení AM/PM.

Příklad:

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

Výsledek:

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

Výsledný čas se zobrazí, jako by byl naformátován pomocí následujícího formátovacího řetězce:'%I:%i:%S %p' .

Samozřejmě, zda vrací AM nebo PM závisí na skutečném čase. Časy před 12:00:00 vrátit AM a časy poté vrátí PM .

Co se stane, když změníme čas tak, aby nadešel před 12:00:00 :

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

Výsledek:

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

Oba DATE_FORMAT() a TIME_FORMAT() přijměte %r specifikátor formátu, takže můžeme použít stejný specifikátor formátu s TIME_FORMAT() funkce:

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

Výsledek:

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

TIME_FORMAT() přijímá časové hodnoty i hodnoty data a času, zatímco DATE_FORMAT() přijímá pouze hodnoty data a data a času. Nicméně TIME_FORMAT() akceptuje pouze specifikátory formátu pro hodiny, minuty a sekundy. Vidíte jako %r vrátí hodiny, minuty a sekundy, to je také akceptováno.

%p Specifikátor formátu

%p specifikátor formátu je specifičtější specifikátor formátu, který se používá výhradně k reprezentaci označení AM/PM. Obvykle se používá ve spojení s jinými specifikátory formátu pro vrácení času ve vlastním formátu.

Jak již bylo zmíněno, %r specifikátor formátu formátuje čas, jako by byl formátován pomocí následujícího formátovacího řetězce:'%I:%i:%S %p' .

Použijme tento řetězec explicitně:

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

Výsledek:

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

Dostaneme tedy stejný výsledek jako při použití %r specifikátor formátu.

Jednou z výhod použití této metody je však to, že můžeme vytvořit výstup vlastním vlastním způsobem.

Například:

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

Výsledek:

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

Zde jsme použili %l vrátíte hodinovou část bez úvodní nuly. Také jsme vynechali sekundovou část času.

Úplný seznam specifikátorů formátu, které lze s těmito funkcemi použít, najdete v části MariaDB Format Strings.


  1. Kurz Microsoft Access 2010, 2013, 2016 a 2019

  2. Jak se připojit k instanci SQL Server pomocí ověřování Windows nebo ověřování SQL Server - SQL Server / Výukový program T-SQL, část 3

  3. Ukládání JSON v databázi vs. mít nový sloupec pro každý klíč

  4. Jaký je nejlepší způsob stránkování výsledků na serveru SQL Server