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

Pilih catatan berdasarkan waktu dalam interval antara 12:00:00 dan 18:00:00 setiap hari

Anda memiliki dua masalah di sini:

  1. Anda tidak dapat merujuk ke alias kolom dalam klausa where. Sebagai gantinya, Anda harus mengulangi perhitungan Anda di klausa where
  2. Gunakan TIME() berfungsi untuk mengekstrak bagian waktu dari datatime

Dengan mengatasi dua masalah tersebut, Anda mendapatkan:

select
    f.fly_reg,
    TIME(f.start_tid) AS st,
    f.start_hight 
    FROM vbsk_dk_02.fab_master_flyvedata f 
where TIME(f.start_tid) between '12:00:00' AND '18:00:00'

Sebagai opsi, jika Anda tidak benar-benar membutuhkan nilai waktu dalam pilihan, Anda dapat menghapusnya dan memasukkannya ke dalam klausa where. Selain itu, Anda dapat menggunakan HOUR() berfungsi jika itu lebih cocok. Dengan dua perubahan tersebut, kueri Anda akan disederhanakan menjadi:

select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18

yang jauh lebih rapi :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli beberapa kueri - set variabel menghasilkan kesalahan boolean/bagaimana cara melewati ini?

  2. Tabel dengan 80 juta catatan dan menambahkan indeks membutuhkan waktu lebih dari 18 jam (atau selamanya)! Sekarang apa?

  3. Laravel Fasih KIRI GABUNG WHERE NULL

  4. Pengecualian MySQL - Terjadi Kesalahan Fatal Selama Pembacaan Data

  5. Kueri CodeIgniter:Bagaimana cara memindahkan nilai kolom ke kolom lain di baris yang sama dan menghemat waktu saat ini di kolom asli?