Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MYSQL Ngày Thời gian Tròn đến Giờ Gần nhất

Cập nhật:Tôi nghĩ https://stackoverflow.com/a/21330407/480943 là một câu trả lời tốt hơn.

Bạn có thể làm điều đó với một số ngày tháng:

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

Giải thích:

  • DATE_FORMAT :DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00") trả về ngày bị cắt ngắn thành giờ gần nhất (đặt phần phút và phần giây thành 0).

  • PHÚT :MINUTE(the_date) nhận giá trị phút của ngày.

  • NẾU :Đây là một điều kiện; nếu giá trị trong tham số 1 là true, thì nó trả về tham số 2, ngược lại nó trả về tham số 3. Vì vậy, IF(MINUTE(the_date) < 30, 0, 1) có nghĩa là "Nếu giá trị phút nhỏ hơn 30 thì trả về 0, ngược lại thì trả về 1". Đây là những gì chúng tôi sẽ sử dụng để làm tròn - đó là số giờ để cộng lại.

  • DATE_ADD :Điều này thêm số giờ cho vòng vào kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lệnh mysql để hiển thị các biến cấu hình hiện tại

  2. MySQL Điền vào các ngày còn thiếu giữa hai ngày cho một trạng thái nhất định

  3. Có sự khác biệt trong việc sử dụng INT (1) so với TINYINT (1) trong MySQL không?

  4. mysql REGEXP không khớp

  5. Chèn hàng loạt với PHP