2012-10-04 133 views
0

我有一個數據庫作爲附加,其中我有一個BirthDate列分爲BirthYear,BirthMonth和BirthDayNumber。SQL查詢問題與日期

Database Image

如。對於生日:

Wednesday, May 10, 1899 

BirthYear:1899 
BirthMonth : 5 
BirthDayNumber :10 

我想以下列格式的數據庫進行排序(月份和日期應該是按升序排列的情況下,如果月份和日期是相等的,那麼它應該在今年以降序排列)

01 January 2011 
02 January 2012 
02 January 2008 
05 August 2012 
06 September 2001 
12 December 1899 

你能幫我解決這個問題嗎?

+2

您正在使用哪個數據庫管理系統? – Vikdor

+0

BirthMonth ASC,BirthDay ASC或OrderYear DESC這是你想要的嗎? –

+0

我正在使用sqlite,因爲我必須將其連接到iphone應用程序。在BirthMonth ASC,BirthDay ASC或OrderYear DESC我正在按年份排序。只有在月份和日期相等的情況下才應該考慮年份。 – ZealDeveloper

回答

1

想這樣的作品

SQLFiddle

使用此代碼

SELECT birthdate FROM testdate 
ORDER BY 
BirthDayNumber ASC, BirthMonth ASC, BirthYear Desc 
0

嘗試

SELECT * FROM `tblename` order by BirthYear DESC, BirthMonth ASC,BirthDayNumber ASC 

感謝

0

請嘗試查詢嘗試類似的東西:

SELECT ROW_NUMBER() OVER (PARTITION BY DT ORDER BY YE DESC, MO ASC, DT ASC) AS NR, DT, MO, YE FROM SOMEDATA 
+0

我已經試過這個,但是我必須考慮這一年,只有當日和月相等。我這種情況下,我得到: 02月2012 2012年8月5日 2011年1月1日 2008年1月2日 2001年9月6日 1899年12月12日 但我需要的輸出,如: 2011年1月1日 02 2012年1月 02一月2008 05八月2012 06九月2001 1899年12月12日 – ZealDeveloper

0

下面給出這個

SELECT * FROM TABLE ORDER BY BirthYear DESC, BirthDayNumber ASC, BirthMonth ASC 
0

試試這個

SELECT CONCAT(BirthDayNumber,' ', MonthName(CONCAT('1900-',CONVERT(BirthMonth,char(2)),'-1')), ' ', Birthyear) 
FROM table 
ORDER BY BirthMonth ASC, BirthDay ASC, BirthYear DESC 
0
SELECT birthdate FROM testdate 
ORDER BY 
BirthMonth ASC,BirthDayNumber ASC, BirthYear Desc