sql >> Database >  >> RDS >> Mysql

Selecteer records op tijd met een interval tussen 12:00:00 en 18:00:00 op elke dag

Je hebt hier twee problemen:

  1. Je kunt niet verwijzen naar kolomaliassen in de where-component. In plaats daarvan moet u uw berekening herhalen in de waar-clausule
  2. Gebruik de TIME() functie om het tijdgedeelte van de datatijd te extraheren

Als deze twee problemen zijn opgelost, krijgt u:

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'

Als een optie, als u de tijdwaarde in de select niet echt nodig hebt, kunt u deze verwijderen en gewoon in de waar-clausule plaatsen. U kunt ook de HOUR() . gebruiken functioneren als dat beter uitkomt. Met deze twee wijzigingen in, zou uw zoekopdracht vereenvoudigen tot:

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

dat is een stuk netter :)



  1. MySQL- en SQLite-verschillen in SQL

  2. Selecteer n willekeurige rijen uit de SQL Server-tabel

  3. mysqli of sterven, moet het sterven?

  4. Python MySQLdb / MySQL INSERT IGNORE &Controleren indien genegeerd