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.