2015-09-06 4 views
0

Я пытаюсь запустить mysql-запрос в php, чтобы он удалял все строки, в которых разница между текущим временем и датой, хранящейся в столбце date_time, больше, чем 2 дней. Я пытаюсь это сделать.Разница между текущим временем и другим временем в базе данных mysql

$query="DELETE FROM fomrad_requests WHERE TIMESTAMPDIFF(SECOND,date_time,now())>=2*24*60*60"; 
    $conn->query($query); 

Можете ли вы сказать мне, что я делаю неправильно? Спасибо!

+0

Почему вы должны делать что-то неправильно? –

+0

@Dawid Ferenczy, я ответил на ответ Гордона, сказав, что видел после публикации, что код работает. Я просто ввел неправильное имя базы данных. Извините, ребята ... – horatiu11

+0

Я имел в виду что-то другое - вы спрашивали, что вы делаете неправильно. Но вы не описали, что не получилось, какие ошибки вы получили и т. Д. Таким образом, никто не может вам помочь, поскольку никто не знает, с чем вам нужно помочь. BTW, если вы использовали неправильное имя БД, сообщение об ошибке должно было быть «DB xyz не существует», поэтому это должно было быть очевидным, не так ли? В любом случае, я рад, что вы решили это самостоятельно :) –

ответ

2

Как насчет чего-то более простого, такого как это?

delete fr 
    from fomrad_requests fr 
    where date_time <= date_sub(now(), interval 2 day); 
+0

или 'where date_time <= now() - interval 2 day;' –

+0

@Dagon. , , Я нервничаю из-за использования 'now()' в таких выражениях. Это действительно не 'datetime'. Это строка или число в зависимости от контекста. –

+0

ok Я больше никогда этого не сделаю. :-) На самом деле, прочитав некоторые из написанных вами материалов, я всегда буду склоняться к вашей мудрости по таким вопросам. –

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