sql >> Database teknologi >  >> RDS >> MariaDB

Hvordan TO_CHAR() virker i MariaDB

I MariaDB, TO_CHAR() er en indbygget strengfunktion, der konverterer et dato/tidsudtryk til en streng.

Udtrykket kan være en dato, datetime, time eller timestamp værdi.

Denne funktion blev introduceret i MariaDB 10.6.1 for at forbedre Oracle-kompatibiliteten.

Syntaks

Syntaksen ser sådan ud:

TO_CHAR(expr[, fmt])

Hvor expr er en dato, datetime, time eller timestamp værdi og fmt er en valgfri formatstreng, der specificerer, hvordan outputtet skal formateres.

Formatstrengen kan være en af ​​følgende:

  • YYYY
  • YYY
  • YY
  • RRRR
  • RR
  • MM
  • MON
  • MONTH
  • MI
  • DD
  • DY
  • HH
  • HH12
  • HH24
  • SS
  • Specialtegn

Standardværdien er YYYY-MM-DD HH24:MI:SS .

Eksempel

Her er et eksempel til demonstration:

SELECT TO_CHAR('2020-01-01');

Resultat:

+-----------------------+
| TO_CHAR('2020-01-01') |
+-----------------------+
| 2020-01-01 00:00:00   |
+-----------------------+

Bestå en DateTime-værdi

Dette eksempel bruger en datetime-værdi:

SELECT TO_CHAR('2022-12-25 10:30:45');

Resultat:

+--------------------------------+
| TO_CHAR('2022-12-25 10:30:45') |
+--------------------------------+
| 2022-12-25 10:30:45            |
+--------------------------------+

Angiv en formatstreng

Her er et eksempel med en formatstreng:

SELECT TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD');

Resultat:

+----------------------------------------------+
| TO_CHAR('2022-12-25 10:30:45', 'YYYY-MM-DD') |
+----------------------------------------------+
| 2022-12-25                                   |
+----------------------------------------------+

Her er endnu en:

SELECT TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY');

Resultat:

+--------------------------------------------+
| TO_CHAR('2022-12-25', 'DY, DD MONTH YYYY') |
+--------------------------------------------+
| Sun, 25 December  2022                     |
+--------------------------------------------+

Numeriske datoer

Her er, hvad der sker, når jeg angiver en numerisk dato:

SELECT TO_CHAR(20200101);

Resultat:

ERROR 3047 (HY000): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.

Ugyldige datoer

Hvis datoen er ugyldig, TO_CHAR() returnerer null med en advarsel:

SELECT TO_CHAR('2020-01-51');

Resultat:

+-----------------------+
| TO_CHAR('2020-01-51') |
+-----------------------+
| NULL                  |
+-----------------------+
1 row in set, 1 warning (0.001 sec)

Lad os tjekke advarslen:

SHOW WARNINGS;

Resultat:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2020-01-51' |
+---------+------+----------------------------------------+

Ugyldig formatstreng

Hvis formatstrengen er ugyldig, TO_CHAR() returnerer en fejl:

SELECT TO_CHAR('2020-01-01', 'wow');

Resultat:

ERROR 3047 (HY000): Invalid argument error: date format not recognized at wow in function to_char.

Nul-formatstreng

TO_CHAR() returnerer null hvis formatstrengen er null :

SELECT TO_CHAR('2020-01-01', null);

Resultat:

+-----------------------------+
| TO_CHAR('2020-01-01', null) |
+-----------------------------+
| NULL                        |
+-----------------------------+

Ugyldigt antal argumenter

Sende et ugyldigt antal argumenter (eller ingen argumenter) resulterer i en fejl:

SELECT TO_CHAR();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_CHAR'

  1. Python:bruge mysqldb til at importere en MySQL-tabel som en ordbog?

  2. SQL Server CASE-udtryk

  3. Hvordan får man adgang til fjernserver med lokal phpMyAdmin-klient?

  4. Sammenligning af strengopdelings-/sammenkædningsmetoder