我有一个包含3列的列。我有一年的多个记录。如您所见,我的一些记录如下
ID stardate enddate
1 1/1/2010 5/3/2010
2 2/4/2010 NULL -**EDIT**
3 1/2/2011 5/6/2011
4 3/4/2011 NULL -**EDIT**
我希望得到当年最早的日期和该年的最后日期的结果。所以输出可能就像
**EDITED:** 1/1/2010 12/31/2010 - For Year 2010
**EDITED:** 1/2/2011 12/31/2011 - For Year 2011
如何在查询中获得该信息?如果您需要更多信息,请询问。感谢
编辑:如果其中一列读取为NULL,那么我必须将一年中的最后一天视为结束日期。 i.e.12 / 31 / YYYY。而且我需要再次每年都这样做。
答案 0 :(得分:2)
假设您在MySQL表中使用DATE
(或相关)列,这样的内容应该可以满足您的要求:
SELECT MIN(startdate),
MAX(enddate),
YEAR(startdate)
FROM my_table
GROUP BY YEAR(startdate);
按年份(起始日期)对所有条目进行分组,并根据需要显示每年的最小和最大条目。另请参阅MySQL中DATE
函数的文档。
如果您使用其他数据库系统,则有类似的日期功能和可能性。通常,您可以通过Google搜索数据库系统以及类似“日期函数”的内容轻松找到它们。
答案 1 :(得分:1)
select MIN(stardate),max(enddate)
from [Tablename]
where YEAR(enddate)=2013