Php SQL查询时间戳日期字段并按日期分组所有结果

Php SQL查询时间戳日期字段并按日期分组所有结果,php,postgresql,Php,Postgresql,我试图创建一个列表,但我被难住了。 因此,我有一个表,其中有一个start_date字段,该字段保存日期的Unix时间戳。 我试图查询该表并从时间戳中提取日期,那么任何带有该日期的结果都将位于该日期之下,依此类推。几乎就像在列表视图中包含事件的日历 我正在用PostgreSQL和PHP做这件事。不确定如何编写该查询。我在PostgreSQL中看到了extract、date\u part等函数,但仍然不确定如何获得正确的查询 任何帮助或例子都将不胜感激 日期('d M Y',$timestamp)

我试图创建一个列表,但我被难住了。 因此,我有一个表,其中有一个start_date字段,该字段保存日期的Unix时间戳。 我试图查询该表并从时间戳中提取日期,那么任何带有该日期的结果都将位于该日期之下,依此类推。几乎就像在列表视图中包含事件的日历

我正在用PostgreSQL和PHP做这件事。不确定如何编写该查询。我在PostgreSQL中看到了extract、date\u part等函数,但仍然不确定如何获得正确的查询

任何帮助或例子都将不胜感激

日期('d M Y',$timestamp)应该提供特定UNIX时间戳的日期、月份和年份

如果您想将其放在列表视图中,请在数据库order by
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也会得到一些满足。