mysql - 按时间间隔选择记录 12 :00:00 and 18:00:00 on every day

标签 mysql date intervals between

我试图选择时间戳为日期格式 2011-08-01- 的表中的所有记录

12:00:00

使用以下代码:

SELECT f.`fly_reg`, RIGHT(f.`start_tid`,8) AS st, f.`start_hight`
FROM vbsk_dk_02.fab_master_flyvedata f 
Where st between 12:00:00 AND 18:00:00

但无法让它工作

最佳答案

这里有两个问题:

  1. 您不能在 where 子句中引用列别名。相反,您必须在 where 子句中重复计算
  2. 使用TIME()函数提取datatime的时间部分

解决了这两个问题后,您将获得:

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'

作为一个选项,如果您实际上不需要 select 中的时间值,您可以将其删除并仅将其放在 where 子句中。此外,如果更合适,您可以使用 HOUR() 函数。有了这两项更改,您的查询将简化为:

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

这更整洁:)

关于mysql - 按时间间隔选择记录 12 :00:00 and 18:00:00 on every day,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6973844/

相关文章:

mySQL 查询 : involving 2 tables

php - 从 MySQL 解析 JSON 字符串并将名称/值对插入 MySQL

使用内部查询时 mysql 错误 1175

jquery - fullCalendar json 与 php 在 "agendaWeek"

java - 如何证明没有区间重叠?

mysql - mysqldump如何将二进制数据写入文件进行MySQL逻辑备份?

java - 如何将此字符串 "Mon Jan 01 00:00:00 AEDT 1990"转换为 "1990101"?

MySql 选择相对相似的日期

javascript - 在cleartimeout函数完成后执行(jQuery)

java - 插入或删除到非重叠连续区间集合