Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MYSQL Tanggal Waktu Putaran Ke Jam Terdekat

Pembaruan:Menurut saya https://stackoverflow.com/a/21330407/480943 adalah jawaban yang lebih baik.

Anda dapat melakukannya dengan beberapa aritmatika tanggal:

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

Penjelasan:

  • FORMAT_TANGGAL :DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00") mengembalikan tanggal yang terpotong ke jam terdekat (menetapkan bagian menit dan detik ke nol).

  • MINUTE :MINUTE(the_date) mendapatkan nilai menit dari tanggal tersebut.

  • JIKA :Ini bersyarat; jika nilai dalam parameter 1 benar, maka ia mengembalikan parameter 2, jika tidak mengembalikan parameter 3. Jadi IF(MINUTE(the_date) < 30, 0, 1) berarti "Jika nilai menit kurang dari 30, kembalikan 0, jika tidak, kembalikan 1". Inilah yang akan kita gunakan untuk membulatkan -- ini adalah jumlah jam untuk ditambahkan kembali.

  • DATE_ADD :Ini menambahkan jumlah jam untuk putaran ke dalam hasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menentukan apakah menggunakan SSL dalam Koneksi MySql?

  2. Mengapa Huruf Arab Tidak Dimasukkan Dalam Basis Data?

  3. cara mengimplementasikan perintah sql yang rumit

  4. Apa cara terbaik untuk menyisipkan dan memperbarui tabel baris tunggal di MySQL?

  5. SQL - menghitung baris dengan nilai tertentu