Intereting Posts
Ошибка сертификата SSL: самоподписанный сертификат в цепочке сертификатов с использованием Twilio на моем веб-сайте Laravel Установка PEAR на wampserver Последовательный порядок флажков Выбранный PHP Модель вызова CodeIgniter для просмотра? Поддержка PHP для Google App Engine? Поместите изображение в центр другого изображения, используя PHP GD Как префикс CSS-фильтрации на основе белых списков в PHP PHP get dropdownlist выбирает значение опции Могу ли я зашифровать PHP-источник или скомпилировать его, чтобы другие его не видели? и как? Сообщение: неопределенная переменная: data – CodeIgniter Найти URL-адрес и получить IP-адрес веб-сайта после перенаправления разбиение на страницы в $ _POST 'submit' MySQL GROUP BY и заполняют пустые строки Установка ширины ячейки электронных таблиц с помощью PHPExcel увеличить производительность PHP-скриптов с интенсивным использованием процессора

Получить минимальное время и максимальное время из базы данных

У меня есть таблица MySQL. Мне нужно получить «Min In Time» и «Max Out Time» от MySQL Query. Я IN_AM только IN_AM и OUT_PM . Как сравнить IN_AM и IN_PM и сравнить два времени и выбор времени. и Сравнение Два раза и выборка Макс. Моя таблица –

введите описание изображения здесь

Я пробовал это. но не работает, потому что пустой столбец.

 SELECT *, LEAST(IN_AM, IN_PM) AS intime, GREATEST(OUT_AM, OUT_PM) AS outtime FROM bio_attandence where date(STR_TO_DATE(attandence_date,'%d/%m/%Y')) >= date('$startdate') AND date(STR_TO_DATE(attandence_date,'%d/%m/%Y')) < date('$enddATE') AND bio_id=".$row['form_no']." GROUP BY bio_id, attandence_date order by attandence_date 

Вы можете добавить COALESCE качестве обходного пути для нулевых значений: LEAST(COALESCE(IN_AM, IN_PM), COALESCE(IN_PM, IN_AM)) AS intime, GREATEST(COALESCE(OUT_AM, OUT_PM), COALESCE(OUT_PM, OUT_AM)) AS outtime – бит громоздкий, но должен работать

Вы можете сделать так:

  Select IF(IN_AM IS NULL OR IN_PM IS NULL, COALESCE(IN_AM, IN_PM), LEAST(IN_AM,IN_PM)) AS intime, IF(OUT_AM IS NULL OR OUT_AM IS NULL, COALESCE(OUT_AM, OUT_AM), GREATEST(OUT_AM, OUT_AM)) AS outtime FROM bio_attandence where date(STR_TO_DATE(attandence_date,'%d/%m/%Y')) >= date('$startdate') AND date(STR_TO_DATE(attandence_date,'%d/%m/%Y')) < date('$enddATE') AND bio_id=".$row['form_no']." GROUP BY bio_id, attandence_date HAVING intime IS NOT NULL AND outtime IS NOT NULL order by attandence_date