2013-04-28 2 views
1

В запросе mysql, как я могу найти, какие записи изменяются/обновляются за 24 часа.CURRENT_TIMESTAMP в задаче timestamp в mysql

У меня есть MySQL таблицы с меткой времени с CURRENT_TIMESTAMP, как default.I я с помощью PHP с пользовательским Mysql.when редактирования записи у меня есть поле activitytime с по умолчанию CURRENT_TIMESTAMP, и я хочу, чтобы получить все те записи, которые изменяются

SELECT * FROM news WHERE activitytime < 24 hours 

я не пытался, но не повезло

select * from news where activitytime >= now() - INTERVAL 1 DAY order by activitytime desc 

Почему мой activitytime поле не обновляют, которые я его обновления? я должен activitytime снова спасти?

CREATE TABLE IF NOT EXISTS `crmtbl` (
`id` bigint(20) NOT NULL AUTO_INCREMENT, 
`ref` varchar(33) NOT NULL, 
`activitytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=316 ; 

Запрос mysq_query ("INSERT INTO crmtbl (реф) Значения ('myref')");

означает, я не использую activitytime в INSERT OR UPDATE

+0

Как только значение по умолчанию было заполнено, оно не обновляется, если выполняется строка, если вы явно не обновляете этот столбец. Что такое инструкция по обновлению? Вы думаете, что у вас есть проблемы с этим, так что я немного смущен, почему вы не опубликовали его изначально ... – Ben

+0

В поле timestamp установлено значение «ON UPDATE CURRENT_TIMESTAMP»? – Svetoslav

+0

Время активности не обновляется, пока я обновляю строку .... вот ее структура ... 'время активности' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, – 2013-04-28 09:35:31

ответ

0

попробовать это

SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY; 

ИЛИ

SELECT * 
FROM table_name 
WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) 

вы должны сделать activitytime поле на обновление текущего времени

изменения это как

CREATE TABLE IF NOT EXISTS `crmtbl` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT, 
    `ref` varchar(33) NOT NULL, 
    `activitytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=316 ; 
+0

Сэр, почему мое поле не обновляется с помощью строки? – 2013-04-28 09:36:00

+0

@ user2244804 Позвольте мне проверить –

+0

Я сделал это с помощью ALTER TABLE crmtbl ИЗМЕНИТЬ КОЛОНН 'время действия' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP – 2013-04-28 09:51:24

Смежные вопросы