按月发布unix时间戳问题


by month unix timestamp issue

当我提取月度报告时,它只显示从本月2日到本月最后一天的条目。例如,4月份的报告仅显示:

2012年2月4日-2012年4月29日

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

2012年1月4日至2012年4月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()进行转换TIMESTAMP值和Unix时间戳值之间的转换为有损,因为映射在两个方向上不是一对一的。对于例如,由于本地时区更改的约定两个UNIX_TIMESTAMP()可以将两个TIMESTAMP值映射到相同的Unix时间戳值。FROM_UNIXTIME()将该值映射回只有一个原始TIMESTAMP值。

请参见此处。

如果你想拥有unix_timestamps而不考虑时区,你可以自己计算。

MySQL中:

从时间戳到唯一时间:

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

另一种方式

SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01');

有关SQL Server,请参阅此链接。