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.