Можно хоть временно изменить переменную lc_time_names
в сеансе ?:
MariaDB [_]> SELECT VERSION();
+-------------------------+
| VERSION() |
+-------------------------+
| 10.3.8-MariaDB-1:10.3.8 |
+-------------------------+
1 row in set (0.000 sec)
MariaDB [_]> DROP PROCEDURE IF EXISTS `sp_lc_time_names`;
Query OK, 0 rows affected (0.000 sec)
MariaDB [_]> DELIMITER //
MariaDB [_]> CREATE PROCEDURE `sp_lc_time_names`(`_locale` CHAR(5))
-> BEGIN
-> DECLARE `_current_lc_time_names` CHAR(5)
-> DEFAULT @@SESSION.lc_time_names;
->
-> SET @@SESSION.lc_time_names := `_locale`;
-> SELECT DATE_FORMAT(CURDATE(), '%d.%M.%Y');
-> SET @@SESSION.lc_time_names := `_current_lc_time_names`;
-> END//
Query OK, 0 rows affected (0.000 sec)
MariaDB [_]> DELIMITER ;
MariaDB [_]> SELECT @@SESSION.lc_time_names;
+-------------------------+
| @@SESSION.lc_time_names |
+-------------------------+
| en_US |
+-------------------------+
1 row in set (0.000 sec)
MariaDB [_]> CALL `sp_lc_time_names`('bg_BG');
+------------------------------------+
| DATE_FORMAT(CURDATE(), '%d.%M.%Y') |
+------------------------------------+
| 01.август.2000 |
+------------------------------------+
1 row in set (0.000 sec)
Query OK, 0 rows affected (0.000 sec)
MariaDB [_]> SELECT @@SESSION.lc_time_names;
+-------------------------+
| @@SESSION.lc_time_names |
+-------------------------+
| en_US |
+-------------------------+
1 row in set (0.000 sec)