我在php中运行了一个mysql查询。
$result = mysql_query("SELECT status,initiated_by,create_timestamp,extension_id,
product_code,prospect_name,prospect_email1,prospect_phone1,prospect_title,
prospect_company,prospect_message,track_id
FROM prospect_requests
WHERE subscriber_id = '$subscriberid'
AND create_timestamp >='$start_date'
AND create_timestamp <= '$end_date'");
有两个属性名称$start_date
和$end_date
我的问题是为什么上面的查询没有返回$end_date
这是一个场景。
我选择了$start_date
作为01-02-2013,$end_date
作为09-2-2013。
但上述查询并未返回9月2日的详细信息。
请帮帮我。
更新
当我将日期定为10日元时,它将向我返回9 feb的详细信息
表格结构
CREATE TABLE `prospect_requests` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`customer_id` varchar(255) NOT NULL,
`subscriber_id` varchar(255) NOT NULL,
`extension_id` varchar(255) DEFAULT NULL,
`vendor_number` varchar(255) DEFAULT NULL,
`product_code` varchar(255) DEFAULT NULL,
`prospect_email1` varchar(255) DEFAULT NULL,
`prospect_phone1` varchar(255) DEFAULT NULL,
`prospect_email2` varchar(255) DEFAULT NULL,
`prospect_phone2` varchar(255) DEFAULT NULL,
`prospect_title` varchar(255) DEFAULT NULL,
`prospect_company` varchar(255) DEFAULT NULL,
`prospect_name` varchar(255) DEFAULT NULL,
`prospect_message` text,
`create_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_timestamp` datetime DEFAULT NULL,
`status` int(11) DEFAULT '0',
`track_id` varchar(255) NOT NULL,
`initiated_by` varchar(255) DEFAULT NULL,
`subscriber_email` varchar(255) DEFAULT NULL,
`vendor_email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=142 DEFAULT CHARSET=latin1;
输入:$ start_time = 2013-02-01
$end_time = 2013-02-09
答案 0 :(得分:1)
条件<= '$end_date'
与<= '$end_date 00:00:00'
基本相同。
如果您需要这一天,您可以这样查询:
... create_timestamp <= '$end_date 23:59:59'
create_timestamp BETWEEN '$start_date' AND '$end_date 23:59:59'
也可以。
<强>替代强>
以编程方式添加一天并使用<
:
$end_date = date('Y-m-d', strtotime("$end_date +1 day"));
... create_timestamp < '$end_date'
<强>更新强>
您还可以先将时间戳转换为日期:
DATE(create_timestamp) BETWEEN '$start_date' AND '$end_date'
答案 1 :(得分:0)
日期格式应为YYYY-MM-DD
。
此外,您可以使用WHERE create_timestamp BETWEEN '...' AND '...'
作为绑定值的更有效条件。
答案 2 :(得分:0)
对于比较日期,您应该在mysql查询中使用BETWEEN
运算符,如下面的
$result = mysql_query("SELECT
status,initiated_by,create_timestamp,extension_id,product_code,prospect_name,
prospect_email1,prospect_phone1,prospect_title,prospect_company,prospect_message,
track_id from prospect_requests WHERE subscriber_id = '$subscriberid' AND
create_timestamp BETWEEN '$start_date' AND '$end_date'");
之间的运营商之间的完整描述
如果仍然无法使用,请使用表格结构更新您的问题
我看到您使用导致问题的timestamp
字段类型的更新问题,请参阅以下可能有用的链接Comparing timestamp with date variable (MySQL and PHP)