Php SQL查询时间戳日期字段并按日期分组所有结果
我试图创建一个列表,但我被难住了。 因此,我有一个表,其中有一个start_date字段,该字段保存日期的Unix时间戳。 我试图查询该表并从时间戳中提取日期,那么任何带有该日期的结果都将位于该日期之下,依此类推。几乎就像在列表视图中包含事件的日历 我正在用PostgreSQL和PHP做这件事。不确定如何编写该查询。我在PostgreSQL中看到了extract、date\u part等函数,但仍然不确定如何获得正确的查询 任何帮助或例子都将不胜感激 日期('d M Y',$timestamp)应该提供特定UNIX时间戳的日期、月份和年份 如果您想将其放在列表视图中,请在数据库order byPhp SQL查询时间戳日期字段并按日期分组所有结果,php,postgresql,Php,Postgresql,我试图创建一个列表,但我被难住了。 因此,我有一个表,其中有一个start_date字段,该字段保存日期的Unix时间戳。 我试图查询该表并从时间戳中提取日期,那么任何带有该日期的结果都将位于该日期之下,依此类推。几乎就像在列表视图中包含事件的日历 我正在用PostgreSQL和PHP做这件事。不确定如何编写该查询。我在PostgreSQL中看到了extract、date\u part等函数,但仍然不确定如何获得正确的查询 任何帮助或例子都将不胜感激 日期('d M Y',$timestamp)
start\u date
字段(升序或降序)上运行select
查询,并在$row中获取它。然后在逐一处理记录的循环中,执行以下操作:
$prevDate = ' ';
$currentDate = ' ';
for each ( $row ) //however it goes
{
$currentDate = date('d M Y',$row['start_date']);
if($prevDate != $currentDate)
{
echo "Day : ".$currentDate;
}
echo $row['other-fields'];
$prevDate = $currentDate;
}
然而,PostgreSQL支持date
datatype,使用它可以简化您的工作
从Unix时代提取日期的最简单/最快方法:
SELECT to_timestamp(my_epoch_ts)::date;
例如:
SELECT to_timestamp(1349118398)::date
结果:
2012-10-01
这就是利用函数,然后是一个
更多详细信息和链接在结尾。当pgsql有一个非常好的时间戳数据类型时,为什么要使用UNIX时间戳?在我看到这些标记之前,我非常接近于从_UNIXTIME()发布/谢谢,但它们不是都必须相同才能生效吗。这就是为什么我试图得到实际的日期,因为它是在时间戳中,所以应该是毫秒。它们都不会是精确的时间,但它们可能在同一天。这就是为什么我要按日期提取日期和列表(组),然后提取当天发布的所有内容。它们不要求完全相同。这也是可行的,因为我正在比较$currentDate和$prevDate,它们只包含日期(使用
date('dmy',$timestamp)
从unix时间戳转换而来)。因此,秒或小时的差异不会影响代码的执行。另外,date()
PHP函数还为您提供了更好的灵活性,使您能够更好地显示UNIX时间戳。你们两个都给了我做我需要的事情所需要的部分。您帮助完成了查询,Arjun给出了一个编写该查询的示例。我只能接受一个,既然我说了“帮助”这个问题,我就接受你的回答。@Pjack:你总是可以投票,所以Arjun也会得到一些满足。