Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecionar registros por horário no intervalo entre 12:00:00 e 18:00:00 todos os dias


Você tem dois problemas aqui:
  1. Você não pode fazer referência a aliases de coluna na cláusula where. Em vez disso, você deve repetir seu cálculo na cláusula where
  2. Use o TIME() função para extrair a parte do tempo do datatime

Com esses dois problemas resolvidos, você obtém:
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'

Como opção, se você não precisar realmente do valor de tempo no select, poderá removê-lo e apenas colocá-lo na cláusula where. Além disso, você pode usar o HOUR() funcionar se isso se adequar melhor. Com essas duas alterações, sua consulta seria simplificada para:
select *
FROM vbsk_dk_02.fab_master_flyvedata
where HOUR(f.start_tid) between 12 and 18

que é muito mais legal :)