【发布时间】:2014-02-06 15:56:12
【问题描述】:
我正在做一些报告,我想获取特定月份的所有日期,例如 2014 年 1 月,以及当我执行此“SQL”时:
SELECT datesInMonth WHERE month = 1 AND year = 2014;
我想得到这个列表:
2014-01-01
2014-01-02
2014-01-03
...
2014-01-31
如果我这样做'SQL':
SELECT datesInMonth WHERE month = 2 AND year = 2014;
我想得到这个列表:
2014-02-01
2014-02-02
2014-02-03
...
2014-02-28
如果我这样做'SQL':
SELECT datesInMonth WHERE month = 2 AND year = 2016;
我想得到这个列表:
2016-02-01
2016-02-02
2016-02-03
...
2016-02-29
这可能吗,或者我应该用自己的表格列出未来 100 年的日期:)
【问题讨论】:
-
您可以使用 UNION 做一个聪明的技巧,或者您可以只在应用程序级别处理业务逻辑。但是你的其他想法也可以。包含未来 1000 年日期的日历表会很小。
-
是的,它将解决我未来 100 年的问题,但如果存在,我想要一个更好的解决方案。
-
您可能需要像这里这样的程序。它会创建一个表,但您也许可以返回一个结果集 - schimpf.es/generate-a-list-between-two-dates-in-mysql
-
@Strawberry 100 年后你为什么不来,看看你有没有更好的评论。
-
谢谢@Shiva 我会试试的。