簡體   English   中英

如何在PostgreSQL中找到最早的日期?

[英]How do I find the earliest date in PostgreSQL?

我正在使用Postgres表,該表具有一個名為first_contact_date的字段,該字段的類型為date。 我正在使用日期的mm / dd / yyyy表示形式 我的查詢按書寫方式正常工作,但按字面順序排序。

SELECT first_contact_date 
FROM schema.table 
ORDER BY first_contact_date

例如,“ 10/3/2016”將在“ 1/2/2017”之后,即使在日期意義上,它也應該是“ 1/2/2017”在“ 10/3/2016”之后。

我看過

  1. 如何從數據庫中找到最早和最新的日期 ,但是它太模糊了,我已經在使用命令了。
  2. SQL按組中最早的日期排序 ,但是我使用的是其他格式。
  3. 如何返回最早的記錄? ,同上數字2

  1. PostgreSQL查詢最早的日期 ,但這將其限制為一年

如何構造查詢,以便從日歷角度返回最早的日期?

您可以提取從年初開始的時間間隔並按以下順序排序:

SELECT first_contact_date-date_trunc('year',first_contact_date), first_contact_date
FROM schema.table 
ORDER BY 1;

編輯:漫長的年份可能無法正常工作,因為從年初開始的持續時間在2月之后可能會有所不同。

這有點臟,但是也可以長時間正常工作:

    SELECT to_char(first_contact_date,'MM')::int*100+to_char(first_contact_date,'DD')::int datenum
FROM schema.table 
ORDER BY 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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