MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи FROM_UNIXTIME() в MariaDB

В MariaDB, FROM_UNIXTIME() е вградена функция за дата и час, която връща стойност за дата и час на базата на дадено времеви печат на unix.

Вие предавате unix timestamp на функцията, когато я извикате.

Резултатът се връща в 'YYYY-MM-DD HH:MM:SS' или YYYYMMDDHHMMSS.uuuuuu формат, в зависимост от това дали функцията се използва в низов или числов контекст.

Стойността се изразява в текущата часова зона.

Синтаксис

Функцията може да се използва по следните начини:

FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp,format)

Където unix_timestamp е времевата марка на unix и format е незадължителен низ за форматиране за форматиране на резултата.

Пример

Ето един пример:

SELECT FROM_UNIXTIME(1721428321);

Резултат:

+---------------------------+
| FROM_UNIXTIME(1721428321) |
+---------------------------+
| 2024-07-20 08:32:01       |
+---------------------------+

Микросекунди

Ето пример, който включва микросекунди:

SELECT FROM_UNIXTIME(1721428321.123456);

Резултат:

+----------------------------------+
| FROM_UNIXTIME(1721428321.123456) |
+----------------------------------+
| 2024-07-20 08:32:01.123456       |
+----------------------------------+

Числов контекст

Когато използвате FROM_UNIXTIME() в числов контекст, резултатът се връща в YYYYMMDDHHMMSS.uuuuuu формат:

SELECT FROM_UNIXTIME(1721428321.123456) + 0;

Резултат:

+--------------------------------------+
| FROM_UNIXTIME(1721428321.123456) + 0 |
+--------------------------------------+
|                20240720083201.123456 |
+--------------------------------------+

Форматирайте резултата

Ето пример за предаване на низ за форматиране за форматиране на резултата:

SELECT FROM_UNIXTIME(1721428321, '%W, %D %M %Y');

Резултат:

+-------------------------------------------+
| FROM_UNIXTIME(1721428321, '%W, %D %M %Y') |
+-------------------------------------------+
| Saturday, 20th July 2024                  |
+-------------------------------------------+

Вижте MariaDB низове за формат на дата за списък с низове за формат, които могат да се използват с FROM_UNIXTIME() функция.

Ограничение за времеви отпечатъци

Отпечатъците за време в MariaDB имат максимална стойност от 2147483647 . Това се дължи на основното 32-битово ограничение. Използването на функцията върху времева марка извън това води до null се връща.

Ето пример, който демонстрира това ограничение:

SELECT 
    FROM_UNIXTIME(2147483647),
    FROM_UNIXTIME(2147483648);

Резултат:

+---------------------------+---------------------------+
| FROM_UNIXTIME(2147483647) | FROM_UNIXTIME(2147483648) |
+---------------------------+---------------------------+
| 2038-01-19 13:14:07       | NULL                      |
+---------------------------+---------------------------+

Часова зона

Резултатът от FROM_UNIXTIME() се изразява в текущата часова зона.

Следните примери използват едно и също времево клеймо на Unix с различни часови зони:

SET time_zone = 'America/New_York';
SELECT FROM_UNIXTIME(2147483647);

Резултат:

+---------------------------+
| FROM_UNIXTIME(2147483647) |
+---------------------------+
| 2038-01-18 22:14:07       |
+---------------------------+

Превключете към друга часова зона и я стартирайте отново:

SET time_zone = 'Africa/Abidjan';
SELECT FROM_UNIXTIME(2147483647);

Резултат:

+---------------------------+
| FROM_UNIXTIME(2147483647) |
+---------------------------+
| 2038-01-19 03:14:07       |
+---------------------------+

Текуща клеймо за време на Unix

Ето пример, който използва UNIX_TIMESTAMP() функция за връщане на текущото времеви печат на unix:

SELECT
    UNIX_TIMESTAMP(),
    FROM_UNIXTIME(UNIX_TIMESTAMP());

Резултат:

+------------------+---------------------------------+
| UNIX_TIMESTAMP() | FROM_UNIXTIME(UNIX_TIMESTAMP()) |
+------------------+---------------------------------+
|       1621734047 | 2021-05-23 11:40:47             |
+------------------+---------------------------------+

Липсващ аргумент

Извикване на FROM_UNIXTIME() с грешен брой аргументи или без подаване на аргументи, води до грешка:

SELECT FROM_UNIXTIME();

Резултат:

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

И още един пример:

SELECT FROM_UNIXTIME( 1, 2, 3 );

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мониторинг на сигурността на базата данни за MySQL и MariaDB

  2. MariaDB LOCALTIMESTAMP() Обяснено

  3. Стъпки, които трябва да предприемете, ако имате прекъсване на MySQL

  4. Изпълнение на MariaDB Galera клъстер без инструменти за оркестриране на контейнери:Част първа

  5. Как LPAD() работи в MariaDB