2012-12-31 142 views
0

Possible Duplicate:
how to find out number of days in month in mysqlSQL查詢計算在一個月

我需要計算在某個月的天數天數。假設用戶是否在2012年11月25日發出。查詢需要將它作爲30返回。請幫助我在Postgres中編寫sql代碼。

在此先感謝。 納文

+0

[你有什麼試過?] http://whathaveyoutried.com) – ryadavilli

+0

這裏是一個postgres的功能,可能有助於這種事情。 http://mssql-to-postgresql.blogspot.com/2006/04/dateadd.html –

+0

儘管問題與[SO 10736989]相同(http://stackoverflow.com/questions/10736989/how-to- MySQL的答案與MySQL的答案不同(因爲看起來PostgreSQL沒有內置的LAST_DAY函數,所以你必須寫一個可以使用它)。例如,參見[PostgreSQL Wiki](http://wiki.postgresql.org/wiki/Date_LastDay)。 –

回答

1
SELECT DATE_PART('days', DATE_TRUNC('month', NOW()) 
+ '1 MONTH'::INTERVAL - DATE_TRUNC('month', NOW())) 

在這裏你只需要給你一個月號碼或您的日期,而不是現在()

+0

嗨Mari SELECT DATE_PART('days',DATE_TRUNC('month','11 -25-2012')+'1 MONTH':: INTERVAL - DATE_TRUNC('month','11 -25-2012')) ; 我以這種方式嘗試過,但他們是一個錯誤說。 錯誤:函數date_trunc(未知,未知)不是唯一的。 我搜索了一下,但無法理解原因,林新與Postgres一起可以請解釋我發生了什麼間隔。 – Naveen

+0

嗨@Naveen。示例中的Now()函數是日期。現在你用'11-25-2012'代替它,這是一個字符。所以給你的日期字段或將你的字符串轉換爲char(即)to_date('11 -25-2012','DD-MM-YYYY') – Mari

+0

這裏是查詢給定日期中特定月份的天數 SELECT DATE_PART('day',DATE_TRUNC('day',(date_trunc('MONTH',to_Date('2013-02-03','YYYY-mm-dd'))+ INTERVAL'1 MONTH - 1 day') )) 感謝所有幫助我的人。 – Naveen

0

作品在mysql的

SELECT DAY(LAST_DAY('2003-02-05')); 
0

聲明@DateTimeE日期時間=轉換(Datetime,'03 -25-2012',101) 聲明@days int 選擇@ days = DATEDIFF(Day,DATEADD(mm,DATEDIFF(m,0,@ DateTime E),0),DATEADD(s,-1,DATEADD(mm,DATEDIFF(m,0,@ DateTimeE)+1,0)))+ 1 select @days

+0

您可以在@DateTimeE變量中傳遞任何日期並獲取當前月份的日期 –