我正在尝试创建一个列表,但我被难住了。所以我有一个带有 start_date 字段的表,其中包含日期的 Unix 时间戳。我正在尝试查询表并从时间戳中提取日期,然后具有该日期的任何结果都将低于该日期,依此类推。几乎就像在列表视图中带有事件的日历。
我正在用 PostgreSQL 和 PHP 做这个。不知道如何编写该查询。但是,我看到 PostgreSQL 的 extract、date_part 等函数,仍然不确定如何获得正确的查询。
任何帮助或示例将不胜感激。
我正在尝试创建一个列表,但我被难住了。所以我有一个带有 start_date 字段的表,其中包含日期的 Unix 时间戳。我正在尝试查询表并从时间戳中提取日期,然后具有该日期的任何结果都将低于该日期,依此类推。几乎就像在列表视图中带有事件的日历。
我正在用 PostgreSQL 和 PHP 做这个。不知道如何编写该查询。但是,我看到 PostgreSQL 的 extract、date_part 等函数,仍然不确定如何获得正确的查询。
任何帮助或示例将不胜感激。
date('d M Y', $timestamp);
应该为您提供该特定 UNIX 时间戳的日期、月份和年份。
如果您想将它放在列表视图中,select
请按字段(升序或降序)对数据库运行查询start_date
,然后在 $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
数据类型,使用它应该可以简化您的操作。
http://www.postgresql.org/docs/8.2/static/datatype-datetime.html
date
从 Unix 纪元中提取 a 的最简单/最快的方法:
SELECT to_timestamp(my_epoch_ts)::date;
例子:
SELECT to_timestamp(1349118398)::date
结果:
2012-10-01
那是利用该to_timestamp()
函数,然后是迄今为止的演员:::date
。
更多详细信息和链接在此最近相关答案的末尾。