簡體   English   中英

SQL查詢時間戳記日期字段並將所有結果按日期分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM