2014-10-09 63 views
0

我有一個表格,標明「Ongoing_Portfolio」下面是它的結構。MySQL:從給定的「日期」對象查找一年中的第一個和最後一個日期

CREATE TABLE `ongoing_portfolio` (
`idOngoing_Portfolio` int(11) NOT NULL AUTO_INCREMENT, 
`Updated_Date` date NOT NULL, 
`Investment_Value` double NOT NULL, 
`Cash_Value` double NOT NULL, 
`idPortfolio` int(11) NOT NULL, 
PRIMARY KEY (`idOngoing_Portfolio`), 
KEY `fk_Ongoing_Portfolio_Portfolio1_idx` (`idPortfolio`), 
CONSTRAINT `fk_Ongoing_Portfolio_Portfolio1` FOREIGN KEY (`idPortfolio`) REFERENCES `portfolio` (`idPortfolio`) ON DELETE NO ACTION ON UPDATE NO ACTION 
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 

我需要得到Updated_Date年的第一天和最後一天。以下是我的嘗試。

//Get the first date 
SELECT EXTRACT (YEAR FROM `Updated_Date`) 
FROM Ongoing_Portfolio WHERE `idPortfolio` = 1 

//Get the last date 
SELECT EXTRACT (YEAR FROM `Updated_Date`) 
FROM Ongoing_Portfolio WHERE `idPortfolio` = 1 

我知道我的嘗試沒有完成,但這也是不正確的。我收到錯誤!

我希望是什麼,如果是Updated_Date2014-05-06第一個查詢應該返回2014-01-01和第二查詢應返回2014-12-31

我怎樣才能做到這一點在MySQL嗎?

回答

1

只能使用一個查詢獲得第一天和最後一天

SELECT MAKEDATE(YEAR(`Updated_Date`),1) as first_date ,MAKEDATE(YEAR(`Updated_Date`),365) as last_date FROM Ongoing_Portfolio WHERE `idPortfolio` = 1 

您可以輕鬆地訪問FIRST_DATE和LAST_DATE從數據庫結果

+0

是的,謝謝..... – 2014-10-09 08:14:39

相關問題