我正在尝试创建一个列表而且我很难过。 所以我有一个表,其中包含一个start_date字段,该字段包含日期的Unix时间戳。 我正在尝试查询表并从时间戳中提取日期,那么该日期的任何结果都将在该日期之下,依此类推。几乎就像列表视图中包含事件的日历。
我正在使用PostgreSQL和PHP。不确定如何编写该查询。我为PostgreSQL看到了诸如extract,date_part等函数,但是仍然不确定如何获得正确的查询。
任何帮助或示例将不胜感激。
答案 0 :(得分:1)
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
答案 1 :(得分:0)
从Unix时代中提取date
的最简单/最快的方法:
SELECT to_timestamp(my_epoch_ts)::date;
示例:
SELECT to_timestamp(1349118398)::date
结果:
2012-10-01
正在使用to_timestamp()
函数,后跟cast to date: ::date
。
this recent related answer末尾的更多详情和链接。