[英]SQL Query timestamp date field and group all results by date
我正在嘗試創建列表,但我很困惑。 因此,我有一個帶有start_date字段的表,其中包含用於日期的Unix時間戳。 我正在嘗試查詢表並從時間戳中提取日期,那么具有該日期的任何結果都將在該天之內,依此類推。 就像日歷在列表視圖中具有事件一樣。
我正在使用PostgreSQL和PHP。 不確定如何編寫該查詢。 我看到諸如PostgreSQL的extract,date_part等函數,但是仍然不確定如何獲取正確的查詢。
任何幫助或示例,將不勝感激。
date('d M Y', $timestamp);
應該為您提供該特定UNIX時間戳記的日期,月份和年份。
如果要在列表視圖中使用它,請按start_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
數據類型,使用它可以簡化您的工作。
http://www.postgresql.org/docs/8.2/static/datatype-datetime.html
從Unix時代提取date
最簡單/最快的方法:
SELECT to_timestamp(my_epoch_ts)::date;
例:
SELECT to_timestamp(1349118398)::date
結果:
2012-10-01
這是利用to_timestamp()
函數,然后使用to_timestamp()
為date ::date
。
此最新答案的末尾有更多詳細信息和鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.