在查询中转换datetime

时间:2011-08-31 04:50:28

标签: php sql

您能否在$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的字段。

你不能在查询中比较这两个吗?

4 个答案:

答案 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