我有一张表格“Ongoing_Portfolio”下面是它的结构。
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_Date
为2014-05-06
,则第一个查询应返回2014-01-01
,第二个查询应返回2014-12-31
我怎么能在MySQL中做到这一点?
答案 0 :(得分:1)
您只能使用一个查询来获取第一天和最后一天
SELECT MAKEDATE(YEAR(`Updated_Date`),1) as first_date ,MAKEDATE(YEAR(`Updated_Date`),365) as last_date FROM Ongoing_Portfolio WHERE `idPortfolio` = 1
您可以从db结果
轻松访问first_date和last_date