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

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

В MariaDB, TO_SECONDS() е вградена функция за дата и час, която връща броя на секундите от година 0 до дадена дата или израз за дата и час.

Синтаксис

Синтаксисът е така:

TO_SECONDS(expr) 

Където expr е стойност за дата или час.

Пример

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

SELECT TO_SECONDS('2020-10-30'); 

Резултат:

+-------------------------+| TO_SECONDS('2020-10-30') |+--------------------------+| 63771235200 |+------------------------------+

Ето го с няколко други времеви стойности:

SELECT 
    TO_SECONDS('0000-01-01'),
    TO_SECONDS('1234-10-30'); 

Резултат:

+--------------------+------------------- -------+| TO_SECONDS('0000-01-01') | TO_SECONDS('1234-10-30') |+--------------------------+----------- ---------------+| 86400 | 38967436800 |+------------------------------+------------------- ------+

Стойности за дата и час

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

SELECT TO_SECONDS('2020-10-30 10:23:47'); 

Резултат:

+---------------------------------+| TO_SECONDS('2020-10-30 10:23:47') |+-------------------------------- --+| 63771272627 |+----------------------------------+

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

TO_SECONDS() игнорира микросекунди:

SELECT TO_SECONDS('2020-10-30 10:23:47.999999'); 

Резултат:

+------------------------------------+| TO_SECONDS('2020-10-30 10:23:47.999999') |+-------------------------------- ---------+| 63771272627 |+--------------------------------------------------+

Числови дати

Поддържат се числови дати:

SELECT TO_SECONDS(20201030); 

Резултат:

+---------------------+| TO_SECONDS(20201030) |+---------------------+| 63771235200 |+---------------------+

Текуща дата/час

Ето пример, който използва NOW() за да върнете броя на секундите въз основа на текущата дата и час:

SELECT 
    NOW(),
    TO_SECONDS(NOW()); 

Резултат:

<пред>+---------------------+-------------------+| СЕГА() | TO_SECONDS(СЕГА()) |+---------------------+-------------------+ | 31.05.2021 09:34:16 | 63789672856 |+---------------------+-------------------+

Ако обаче използваме CURDATE() , ще получим различен резултат (защото CURDATE() връща стойност за дата, докато NOW() връща стойност за дата и час).

SELECT 
    NOW(),
    TO_SECONDS(NOW()),
    CURDATE(),
    TO_SECONDS(CURDATE()); 

Резултат (с помощта на вертикален изход):

 СЕГА():2021-05-31 09:35:01 TO_SECONDS(NOW()):63789672901 CURDATE():2021-05-31TO_SECONDS(CURDATE()):63789638400

Невалиден аргумент

Когато се подадат невалидни аргументи, TO_SECONDS() връща null с предупреждение:

SELECT TO_SECONDS('Homer'); 

Резултат:

+---------------------+| TO_SECONDS('Homer') |+---------------------+| NULL |+---------------------+1 ред в комплект, 1 предупреждение (0,000 сек.)

Проверете предупреждението:

SHOW WARNINGS; 

Резултат:

+--------+------+---------------------------- --+| Ниво | Код | Съобщение |+--------+------+------------------------------ -+| Предупреждение | 1292 | Неправилна стойност на времето:'Homer' |+--------+------+------------------------ -------+

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

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

SELECT TO_SECONDS(); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „TO_SECONDS“

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

SELECT TO_SECONDS('2020-10-08', '10:09:10'); 

Резултат:

ГРЕШКА 1582 (42000):Неправилен брой на параметрите в извикването на естествена функция „TO_SECONDS“

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Миграция от Oracle Database към MariaDB - Дълбоко гмуркане

  2. Как да съкратите текст с многоточие в MariaDB

  3. 2 начина за изброяване на всички функции в MariaDB

  4. Как работи LOWER() в MariaDB

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