Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Внизработа в SQL запросах с DATETIME полями как с EXTENDED Найти похожие ветки
← →
Shaman_ © (2006-09-26 21:12) [0]Примерная задача:
Есть таблица с полем DATE_CTEATE (DATETIME)
необходимо сделать выборку записей, DATE_CREATE которых на 100 часов меньше текущего времени. Если бы MySQL работал с DATETIME полями как с родным форматом- EXTENDED, все было бы просто SELECT * FROM TABLE_NAME WHERE DATE_CREATE > (NOW()-100*(1/24)) но поскольку она пытается преобразовать числа методом похожим на DateTimeToStr, просто так от даты не отнять нужный интервал времени. С помощью CAST привести DATETIME к EXTENDED тоже не вышло. После CAST получаем примерно следующее число - 20060926212000 ну тоесть дата в строковом формате, с удалением разделителей и преобразованная к простому числу
Может есть какие функции для арифметических операций с DATETIME типом?
← →
Johnmen © (2006-09-26 21:52) [1]А так
WHERE DATE_CREATE + 100*(1/24)> NOW()
?
← →
Desdechado © (2006-09-26 21:55) [2]для начала попробуй
select NOW()-100*(1/24) from table where id=1
← →
Johnmen © (2006-09-26 22:10) [3]Кстати http://www.mysql.ru/docs/man/Date_and_time_functions.html
← →
Shaman_ © (2006-09-26 22:30) [4]>Johnmen © (26.09.06 21:52) [1]
>А так
>WHERE DATE_CREATE + 100*(1/24)> NOW()
>?
>Desdechado © (26.09.06 21:55) [2]
>для начала попробуй
>select NOW()-100*(1/24) from table where id=1
Спасибо за советы, но в этом направлении копать бесполезно. Уже все перепробовал. В том и дело, что подобные запросы работают не верно
Допустим если выполнить такой запрос:
SELECT NOW()+100*(1/24),NOW()
получим: 20060926221722,2 | 26.09.2006 22:17:18
Надеюсь смысл понятен? :) СУБД не воспринимает дату как EXTENDED, следовательно и арифметические операции как с EXTENDED здесь просто так не пройдут
← →
Shaman_ © (2006-09-26 22:32) [5]Johnmen © (26.09.06 22:10) [3]
Вот именно это я искал! Спасибо за помощь!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.049 c