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

MySQL wybierz DATETIME podobnie do minuty

To wyrażenie MySql zwróci wartości DATETIME z wyzerowanymi sekundami.

CONVERT(DATA_FORMAT(tabela.kolumna;'%Y-%m-%d-%H:%i:00');DATAGODZINA) 

Popatrz na to. https://dev .mysql.com/doc/refman/8.0/en/data-i-czas-funkcje.html#function_date-format . Możesz więc otrzymać takie zapytanie:

<> SELECT Tabela1.TimeStamp1, Table1.Param1, Table2.TimeStamp2, Table2.Param2 FROM Table1 JOIN Table2 ON CONVERT(DATE_FORMAT(Tabela1.TimeStamp1,'%Y-%m-%d-%H:%i :00'),DATETIME) =CONVERT(DATE_FORMAT(Table2.TimeStamp2,'%Y-%m-%d-%H:%i:00'),DATETIME) WHERE ... warunki dla innych parametrów tabeli 1 i Tabela2...

Ale bądź ostrożny. Automatycznie generowane znaczniki czasu są trochę jak liczby zmiennoprzecinkowe; kiedy dwoje z nich staje się sobie równych, to tylko szczęście. Skrócenie swoich znaczników czasu do minuty może być w porządku, ale lepiej będzie odjąć jeden znacznik czasu od drugiego i porównać różnice (lub wartości bezwzględne różnic).

Poza tym to łączenie będzie powolne, ponieważ musi uruchamiać drugą funkcję obcinania dla każdej wartości, więc nie może używać żadnych indeksów.

Możesz odjąć jeden znacznik czasu od drugiego za pomocą TIMESTAMPDIFF() . Ale bądź ostrożny. Ta funkcja działa poprawnie tylko na poziomie sekund dla znaczników czasu w odstępie kilku dni; przelewa się bez wdzięku (jak odkryłem z wielkim bólem).

Możesz spróbować skrócić sygnatury czasowe do minut w momencie ich wstawiania. To pozwoliłoby Ci je zindeksować.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php mysqli_connect:metoda uwierzytelniania nieznana klientowi [caching_sha2_password]

  2. Czy kolejność kolumn ma znaczenie w twoich tabelach MySQL?

  3. Dodaj wartość do kolumny każdego miesiąca w bazie danych Mysql

  4. Odświeżasz program Windows, gdy inni użytkownicy wprowadzają zmiany?

  5. Problemy z wyszukiwaniem w MySQL