当我提取月度报告时,它仅显示从该月的第二天到该月的最后一天之前的条目。例如,4月份的报告仅显示:
04/02/12 - 04/29/12
我可以修改什么来显示条目:
04/01/12 - 04/30/12
$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);
由于
答案 0 :(得分:1)
从手册:
注意:如果使用UNIX_TIMESTAMP()和FROM_UNIXTIME()进行转换 在TIMESTAMP值和Unix时间戳值之间,转换是 因为映射在两个方向上都不是一对一的。对于 例如,由于本地时区更改的约定,它是 可能有两个UNIX_TIMESTAMP()将两个TIMESTAMP值映射到 相同的Unix时间戳值。 FROM_UNIXTIME()会将该值映射回 只有一个原始的TIMESTAMP值。
请参阅here.
如果你想在不考虑时区的情况下拥有unix_timestamps,你可以自己计算。
在 MySQL :
中从时间戳到unixtime:
SELECT timestampdiff(second, '1970-01-01', yourTimestampColumnOrValue);
另一种方式
SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01');
对于 SQL Server ,请参阅此link。