Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Сравнение с отрицательным временем (Кирилл) 13/08/2016 - 10:22:58
      Re: Сравнение с отрицательным временем (Akina) 13/08/2016 - 21:03:20
      Re: Сравнение с отрицательным временем (Кирилл) 16/08/2016 - 09:36:05

> Original message text:
> From: Кирилл - 13/08/2016 - 10:22:58
> Subject:Сравнение с отрицательным временем
> -----------------
> Здравствуйте.
>
> Помогите со следующим запросом:
>
> SELECT
> @diff_time:=TIMEDIFF(table.time1, table.time2)
> FROM
> table
> WHERE
> TIME(@diff_time) > '00:00:00'
>
> Суть:
> @diff_time содержит время с отрицательными значениями (-00:05:00), необходимо их исключить из выборки.
>
> В текущей конструкции выводятся все значения, как я понял MySQL просто игнорирует знак "-".
> TIME() используется, т.к. MySQL для переменных не поддерживает тип time,а хранит в mediumtext.
>
> Пробовал:
> переводить в секунды TIME_TO_SEC(TIME(@diff_time))>0
> сравнивать по знаку SIGN(TIME_TO_SEC(TIME(@diff_time))=1
>
> Все равно выводит все значения, не учитывая "-".
>
> Вроде запрос простой, но уже всю голову сломал.
>


From: Кирилл - 16/08/2016 - 09:36:05
Subject:Сравнение с отрицательным временем
-----------------
Прошу прощения, я упростил запрос, чтобы выделить суть.

Решилось, только если в условии еще раз проводить TIMEDIFF.
SELECT
a_start_datetime,
a_stop_datetime,
b_start_datetime,
b_stop_datetime,
a_duration,
@b_duration=TIMEDIFF(b_stop_datetime,b_start_datetime)
TIMEDIFF(a_duration, time(@b_duration)) as "diff_time"
FROM
table
WHERE
a_duration > TIMEDIFF(b_stop_datetime,b_start_datetime)


Если использовать переменную, опять не учитывает минус.
WHERE
a_duration > time(@b_duration)

Проблема решена, но такое поведение MySQL с переменными остается загадкой.
Специально привожу сравниваемые значения к одному типу.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43615



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |