问题描述
当我提取月度报告时,它只显示从该月的第 2 天到该月最后一天的条目.例如,4 月份的报告仅显示:
When i pull a monthly report it's only showing entries from the 2nd day of the month up to the day be before the last of the month. For example a report for month of April only shows:
04/02/12 - 04/29/12
04/02/12 - 04/29/12
我可以修改什么来显示条目:
What can i modify to show entries:
04/01/12 - 04/30/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);
谢谢
推荐答案
来自手册:
注意:如果使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 来转换TIMESTAMP 值和 Unix 时间戳值之间的转换是有损,因为映射在两个方向上都不是一对一的.为了例如,由于当地时区变化的约定,它是两个 UNIX_TIMESTAMP() 可以将两个 TIMESTAMP 值映射到相同的 Unix 时间戳值.FROM_UNIXTIME() 将该值映射回只有原始 TIMESTAMP 值之一.
请参阅此处.
如果你想拥有 unix_timestamps 而不考虑时区,你可以自己计算.
If you want to have unix_timestamps without consideration of time zones, you can calculate it yourself.
在MySQL中:
从时间戳到unixtime:
From timestamp to unixtime:
SELECT timestampdiff(second, '1970-01-01', yourTimestampColumnOrValue);
另一种方式
SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01');
对于 SQL Server,请参阅此 链接.
这篇关于按月 unix 时间戳问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!