gpt4 book ai didi

MySQL 获取月、年的日期列表

转载 作者:可可西里 更新时间:2023-11-01 07:39:53 25 4
gpt4 key购买 nike

我正在做一些报告,我想获取特定月份的所有日期,例如 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

这可能吗,还是我应该自己制作一张包含 future 100 年日期的表格:)

最佳答案

这是这道题的mysql/java解法。

创建表声明:

CREATE TABLE `date_table` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Java代码:

public static void main(String[] args) throws ClassNotFoundException, SQLException {
Database db = new Database("root", "root01", "test-db", "10.10.5.11");
db.connect();
int start_year = 2013;
int end_year = 2100;
for (int year = start_year; year < end_year; year++) {
for (int month = 1; month <= 12; month++) {
int days_in_month = 0;
switch (month) {
case 1: { //January
days_in_month = 31;
break;
}
case 2: { //February
if (year % 4 == 0) {
days_in_month = 29;
} else {
days_in_month = 28;
}
break;
}
case 3: { //March
days_in_month = 31;
break;
}
case 4: { //April
days_in_month = 30;
break;
}
case 5: { //May
days_in_month = 31;
break;
}
case 6: { //June
days_in_month = 30;
break;
}
case 7: { //July
days_in_month = 31;
break;
}
case 8: { //August
days_in_month = 31;
break;
}
case 9: { //September
days_in_month = 30;
break;
}
case 10: { //October
days_in_month = 31;
break;
}
case 11: { //November
days_in_month = 30;
break;
}
case 12: { //December
days_in_month = 31;
break;
}
}
for (int day = 1; day <= days_in_month; day++) {
db.executeInsert("INSERT INTO date_table (date) VALUES ('" + year + "-" + month + "-" + day + "');");
}
}
System.out.println("YEAR: " + year + " FINISHED");
}
}

我使用此 sql 获取日期列表:

SELECT * FROM date_table WHERE YEAR(date) = 2014 AND MONTH(date) = 2;

希望有人使用它:)

关于MySQL 获取月、年的日期列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com