我有一个MySql数据库,它使用时间戳字段来跟踪插入条目的时间。MySql查询日期范围在PHP中
现在我想通过日期范围查询表中的条目。
我宁愿使用MySql来提取记录,而不是提取所有记录,然后迭代和比较PHP中的日期。
所以我有一个开始日期和结束日期。我曾尝试YYYYMMDD和YYYY-MM-DD格式,这两种类型的查询没有成功:
// this doesn't appear to be working
SELECT COUNT(*) FROM table_name
WHERE DATE(timestamp_row) BETWEEN '{$date1}' AND '{$date2};
// this doesn't appear to be working either
SELECT COUNT(*) FROM table_name
WHERE DATE(timestamp_row) >= {$date1}
AND DATE(timestamp_row) <= {$date2};
看来,mysql的date()函数打开的时间戳为这种格式: YYYY-MM-DD
有没有办法做到这一点。
如果您提供了像这样的YYYY-MM-DD字符串,用单引号括起来,查询就可以按您的需要工作。这里有其他的错误,我看不到。 'timestamp_row'不是TIMESTAMP/DATETIME/DATE类型列吗? – 2011-02-24 18:29:56
您是否使用实际日期值而不是'{$ date1}'等来尝试它? – sdleihssirhc 2011-02-24 18:30:23
@dan timestanp_row是一个mysql类型的时间戳。我会尝试使用静态数字来查看是否有效。 – OneNerd 2011-02-24 19:00:05