Php 按月unix时间戳问题

Php 按月unix时间戳问题,php,sql,unix-timestamp,Php,Sql,Unix Timestamp,当我拉一份月度报告时,它只显示从每月第2天到月末前一天的条目。例如,4月份的报告仅显示: 2012年4月2日至2012年4月29日 我可以修改什么以显示条目: 2012年1月4日至2012年3月30日 $month = $_GET['month']; if ($services = $db->get_results("SELECT * from vw_newservices where month(from_unixtime(datetime)) = '$month'")) { f

当我拉一份月度报告时,它只显示从每月第2天到月末前一天的条目。例如,4月份的报告仅显示:

2012年4月2日至2012年4月29日

我可以修改什么以显示条目:

2012年1月4日至2012年3月30日

$month = $_GET['month'];
if ($services =     $db->get_results("SELECT * from vw_newservices where month(from_unixtime(datetime)) = '$month'")) {
foreach ($services as $service) {
$datetime = date("m/d/y",$service->datetime);
感谢手册中的

注意:如果使用UNIX_TIMESTAMP()和FROM_UNIXTIME()进行转换 时间戳值和Unix时间戳值之间的转换是 有损,因为映射在两个方向上不是一对一的。对于 例如,由于本地时区更改的约定,它是 两个UNIX_TIMESTAMP()可以将两个时间戳值映射到 相同的Unix时间戳值。FROM_UNIXTIME()将该值映射回 只有一个原始时间戳值

如果您想在不考虑时区的情况下使用unix_时间戳,您可以自己计算

在MySQL中:

从时间戳到unixtime:

SELECT timestampdiff(second, '1970-01-01', yourTimestampColumnOrValue);
相反

SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01');
有关SQL Server的信息,请参见手册中的以下内容:

注意:如果使用UNIX_TIMESTAMP()和FROM_UNIXTIME()进行转换 时间戳值和Unix时间戳值之间的转换是 有损,因为映射在两个方向上不是一对一的。对于 例如,由于本地时区更改的约定,它是 两个UNIX_TIMESTAMP()可以将两个时间戳值映射到 相同的Unix时间戳值。FROM_UNIXTIME()将该值映射回 只有一个原始时间戳值

如果您想在不考虑时区的情况下使用unix_时间戳,您可以自己计算

在MySQL中:

从时间戳到unixtime:

SELECT timestampdiff(second, '1970-01-01', yourTimestampColumnOrValue);
相反

SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01');
有关SQL Server的信息,请参见此