您能否在$query
中动态地将DATETIME与UNIX时间戳进行比较?
类似的东西:
$query = "DELETE FROM customer_appointments
WHERE dealer_id = 12880
AND $today < $appt_date";
$today = time()
$appt_date = "2011-09-17 00:00:00"
是来自customer_appointments
的字段。
你不能在查询中比较这两个吗?
答案 0 :(得分:1)
尝试:
DELETE FROM customer_appointments WHERE dealer_id = 12880 AND $today < UNIX_TIMESTAMP( '$appt_date' );
这应该适用于MySQL(不确定你正在使用什么数据库)。
此外,我建议您转义数据以防止Bobby Tables进入您的数据库。
答案 1 :(得分:0)
您可以通过几种方式完成所要求的工作。您可以使用date(Y-m-d H:i:s)
而不是时间,您可以将appt_date转换为MySQL内部的UNIX_TIMESTAMP,或者您可以使用strtotime将其转换为PHP。
我认为你实际上是在尝试这样做:
DELETE FROM customer_appointments
WHERE dealer_id = 12880
-- all appointments before now
AND NOW() < APPT_DATE
答案 2 :(得分:0)
Mysql可以毫无问题地将日期转换为unix时间戳 但是,请不要在问题中使用unix时间戳
DELETE FROM customer_appointments WHERE dealer_id = 12880 AND NOW() < appt_date
看起来像一个解决方案 如果不是 - 您必须用文字描述任务。
答案 3 :(得分:0)
您可以在查询中使用FROM_UNIXTIME($ today),这样您就可以将日期时间与时间戳进行比较
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime