PHP Выберите ВСЕ из MySQL между двумя временами [дубликат]

Просто измените функцию:

def notastonishinganymore(a = []): '''The name is just a joke :)'''
    a = a[:]
    a.append(5)
    return a
3
задан Bohemian 7 August 2011 в 17:41
поделиться

2 ответа

У вас здесь две проблемы:

  1. Вы не можете ссылаться на псевдонимы столбцов в предложении where. Вместо этого вы должны повторить свои вычисления в предложении where
  2. Используйте функцию TIME() для извлечения временной части периода времени

. С учетом этих двух проблем, вы получите:

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

, который много опережает:)

7
ответ дан Bohemian 21 August 2018 в 15:19
поделиться

Если вы сохранили время в столбце типа «Timestamp» или «Datetime», вы можете выбрать диапазон записей между часами следующим образом:

select * from testTable where hour(`timeStampCol`) >= 12 and hour(`timeStampCol`) <= 18

Я проверил это с помощью этого setp вверх:

CREATE TABLE `cm`.`testTable` (
  `timeStampCol` TIMESTAMP  NOT NULL,
  `dateTimeCol` DATETIME  NOT NULL
)
ENGINE = MyISAM
COMMENT = 'Delete this table';

insert into testTable values ('2010-01-01 14:52:00', '2010-01-01 14:52:00')
insert into testTable values ('2010-01-01 19:48:00', '2010-01-01 19:48:00')
2
ответ дан TJDJD 21 August 2018 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: