Mysql
 sql >> Baza danych >  >> RDS >> Mysql

TO_SECONDS() Przykłady – MySQL

W MySQL funkcja TO_SECONDS() funkcja zwraca liczbę sekund od roku 0.

Tej funkcji nie należy mylić z TIME_TO_SECONDS() funkcja, która zwraca liczbę sekund w podanej wartości czasu podanej jako argument.

Składnia

Składnia wygląda tak:

TO_SECONDS(expr)

Gdzie expr jest wartością daty lub daty i godziny (do porównania z rokiem 0).

Przykład 1 – Użycie argumentu „data”

Oto przykład z użyciem argumentu daty.

SELECT TO_SECONDS('2021-09-21');

Wynik:

+--------------------------+
| TO_SECONDS('2021-09-21') |
+--------------------------+
|              63799401600 |
+--------------------------+

Przykład 2 – Użycie argumentu „data-godzina”

Oto przykład z użyciem argumentu daty i godziny.

SELECT TO_SECONDS('2021-09-21 10:30:25');

Wynik:

+-----------------------------------+
| TO_SECONDS('2021-09-21 10:30:25') |
+-----------------------------------+
|                       63799439425 |
+-----------------------------------+

Przykład 3 – Korzystanie z aktualnej daty

W tym przykładzie przekazuję CURDATE() funkcja jako argument, aby użyć bieżącej daty.

SELECT TO_SECONDS(CURDATE()) AS 'Result';

Wynik:

+-------------+
| Result      |
+-------------+
| 63697968000 |
+-------------+

Przykład 4 – Korzystanie z bieżącej daty i godziny

W tym przykładzie przekazuję NOW() funkcja jako argument, aby użyć bieżącej daty i czasu.

SELECT TO_SECONDS(NOW()) AS 'Result';

Wynik:

+-------------+
| Result      |
+-------------+
| 63698002698 |
+-------------+

Dwucyfrowe lata

MySQL ma specjalne zasady postępowania z datami z latami dwucyfrowymi. Dwucyfrowe lata są niejednoznaczne, ponieważ wiek jest nieznany. Zasadniczo obowiązują następujące zasady:

  • Wartości roku w zakresie 00-69 są konwertowane na 2000-2069 .
  • Wartości roku w zakresie 70-99 są konwertowane na 1970-1999 .

Aby uzyskać pełne wyjaśnienie, zobacz dokumentację MySQL o tym, jak MySQL radzi sobie z dwucyfrowymi latami.

Oto przykład do zademonstrowania:

SELECT 
  TO_SECONDS('69-10-07') AS '69 (2069)',
  TO_SECONDS('70-10-07') AS '70 (1970)';

Wynik:

+-------------+-------------+
| 69 (2069)   | 70 (1970)   |
+-------------+-------------+
| 65315548800 | 62191324800 |
+-------------+-------------+

Skrócone daty

Możesz także użyć skróconych dat. Oto przykład z wykorzystaniem poprzednich wartości dat w skróconej formie.

SELECT 
  TO_SECONDS('691007') AS '69 (2069)',
  TO_SECONDS('701007') AS '70 (1970)';

Wynik:

+-------------+-------------+
| 69 (2069)   | 70 (1970)   |
+-------------+-------------+
| 65315548800 | 62191324800 |
+-------------+-------------+

Wcześniejsze daty

Dokumentacja MySQL ostrzega, że ​​TO_SECONDS() funkcja:

nie jest przeznaczony do użytku z wartościami, które poprzedzają nadejście kalendarza gregoriańskiego (1582), ponieważ nie uwzględnia dni, które zostały utracone podczas zmiany kalendarza. W przypadku dat sprzed 1582 r. (i prawdopodobnie późniejszego roku w innych lokalizacjach) wyniki tej funkcji nie są wiarygodne.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest różnica między zestawami znaków utf8mb4 i utf8 w MySQL?

  2. Zakoduj swój pierwszy interfejs API za pomocą Node.js i Express:połącz bazę danych

  3. Zapytanie SQL do usunięcia tabeli w MySQL

  4. MySQL:Szybki podział typów złączeń

  5. Ukrywanie prawdziwego identyfikatora obiektu bazy danych w adresach URL