SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.08.2014 00:12:55

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

что то на подобии eval()

DATE_FORMAT(a.add + INTERVAL a.period a.periodname,' %d-%m-%Y') - как?

Неактивен

 

#2 06.08.2014 00:18:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: что то на подобии eval()

Синтаксис INTERVAL не подразумевает использование переменных вместо единицы измерения. Проще перевести в секунды

Неактивен

 

#3 06.08.2014 00:20:56

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

Re: что то на подобии eval()

а как еще можно такое DATE_FORMAT(NOW(),'%d-%m-%Y') >= DATE_FORMAT(a.add + INTERVAL a.period a.periodname,'%d-%m-%Y') реализовать ?

Неактивен

 

#4 06.08.2014 00:23:58

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: что то на подобии eval()

Перебором внутри IF, наподобии такого:

DATE_FORMAT(NOW(),'%d-%m-%Y') >= IF(a.periodname='SECOND', DATE_FORMAT(a.add + INTERVAL a.period SECOND,'%d-%m-%Y') , IF(a.periodname='MINUTE', DATE_FORMAT(a.add + INTERVAL a.period MINUTE,'%d-%m-%Y') , DATE_FORMAT(a.add + INTERVAL a.period HOUR,'%d-%m-%Y')));

Неактивен

 

#5 06.08.2014 00:43:57

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

Re: что то на подобии eval()

БОЛЬШОЕ СПАСИБО за то что уделили время!

Отредактированно saharin (06.08.2014 00:51:06)

Неактивен

 

#6 06.08.2014 01:08:35

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

Re: что то на подобии eval()

а почему может некорректно отрабатывать сравнение?
DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(a.endperiod,'%Y-%m-%d') - вот например сработало нормально!
а если формат %d-%m-%Y то вообще непонятно сравнивает (по месяцам вроде) - то есть выдает хаотичный результат какой то, даты меньше чем a.endperiod

Отредактированно saharin (06.08.2014 01:12:33)

Неактивен

 

#7 06.08.2014 01:10:56

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: что то на подобии eval()

Сравнивает как строки: сначала первый символ, если равны, то второй и.т.д.

Неактивен

 

#8 06.08.2014 01:13:06

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

Re: что то на подобии eval()

подскажите еще пожалуйста как правильно сделать такое сравнение?

Неактивен

 

#9 06.08.2014 01:15:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: что то на подобии eval()

Вы привели вполне рабочий вариант: DATE_FORMAT(NOW(),'%Y-%m-%d') >= DATE_FORMAT(a.endperiod,'%Y-%m-%d')

Неактивен

 

#10 06.08.2014 01:19:25

saharin
Участник
Зарегистрирован: 22.10.2013
Сообщений: 22

Re: что то на подобии eval()

я думал мускул именно даты сравнивает, а оказалось как строки 0_о
тогда наверное лучше переводить дату в метку времени и потом уже сравнивать..

БОЛЬШОЕ СПАИБО еще раз!

Отредактированно saharin (06.08.2014 01:21:34)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson