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

MYSQL Data Godzina Od zaokrąglenia do najbliższej godziny

Aktualizacja:myślę, że https://stackoverflow.com/a/21330407/480943 jest lepszą odpowiedzią.

Możesz to zrobić za pomocą arytmetyki dat:

SELECT some_columns,
    DATE_ADD(
        DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00"),
        INTERVAL IF(MINUTE(the_date) < 30, 0, 1) HOUR
    ) AS the_rounded_date
FROM your_table

Wyjaśnienia:

  • DATE_FORMAT :DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00") zwraca datę skróconą do najbliższej godziny (ustawia minuty i sekundy na zero).

  • MINUT :MINUTE(the_date) pobiera wartość minutową daty.

  • JEŻELI :To jest warunek; jeśli wartość w parametrze 1 jest prawdziwa, zwraca parametr 2, w przeciwnym razie zwraca parametr 3. Zatem IF(MINUTE(the_date) < 30, 0, 1) oznacza „Jeśli wartość minut jest mniejsza niż 30, zwróć 0, w przeciwnym razie zwróć 1”. Właśnie tego użyjemy do zaokrąglenia — jest to liczba godzin, które należy ponownie dodać.

  • DATE_ADD :Dodaje liczbę godzin rundy do wyniku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawić, by wiele LEFT JOIN z OR w pełni wykorzystywało indeks złożony? (część 2)

  2. Różnica między bazami danych w pamięci a bazą danych w pamięci dyskowej

  3. Data PHP/Mysql zapisana jako „0000-00-00”

  4. Mysql:Kolejność wyników z select <nazwa pola> z jest inna niż kolejność wyników z select * z

  5. Przekazywanie parametrów do przygotowanego oświadczenia JDBC