houzhongjian
2024-07-23 a6de490948278991e47952e90671ddba4555e9a2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.iailab.module.data.ind.collection.utils;
 
import com.iailab.framework.common.util.date.DateUtils;
import com.iailab.module.data.ind.common.IndTimeRangeConst;
 
import java.util.Calendar;
 
/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年05月25日
 */
public class IndSqlUtils {
 
    public final static String PATTERN_YEAR = "yyyy";
 
    public final static String PATTERN_MON = "yyyy-MM";
 
    public final static String PATTERN_DATE = "yyyy-MM-dd";
 
 
    public static String getSqlWhere(String timeRange, String timeGranularity) {
        StringBuilder sqlWhere = new StringBuilder();
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MILLISECOND, 0);
        switch (timeRange) {
            case IndTimeRangeConst.LAST_YEAR:
                calendar.add(Calendar.YEAR, -1);
                sqlWhere.append("ind_t.data_time = '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_YEAR));
                sqlWhere.append("'");
                break;
            case IndTimeRangeConst.THIS_YEAR:
                sqlWhere.append("ind_t.data_time = '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_YEAR));
                sqlWhere.append("'");
                break;
            case IndTimeRangeConst.THIS_YEAR_MONTH:
                sqlWhere.append("ind_t.data_time >= '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_YEAR) + "-01' ");
                sqlWhere.append("and ind_t.data_time <= '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_YEAR)  + "-12' ");
                break;
            case IndTimeRangeConst.THIS_MONTH:
                sqlWhere.append("ind_t.data_time = '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_MON));
                sqlWhere.append("'");
                break;
            case IndTimeRangeConst.YESTERDAY:
                calendar.add(Calendar.DAY_OF_YEAR, -1);
                sqlWhere.append("ind_t.data_time = '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                sqlWhere.append("'");
                break;
            case IndTimeRangeConst.TODAY:
                sqlWhere.append("ind_t.data_time = '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                sqlWhere.append("'");
                break;
            case IndTimeRangeConst.LAST_DAY_7:
                calendar.add(Calendar.DAY_OF_YEAR, -7);
                sqlWhere.append("ind_t.data_time >= '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                sqlWhere.append("'");
                break;
            case IndTimeRangeConst.LAST_DAY_30:
                calendar.add(Calendar.DAY_OF_YEAR, -30);
                sqlWhere.append("ind_t.data_time >= '");
                sqlWhere.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                sqlWhere.append("'");
                break;
            default:
                break;
 
        }
        return sqlWhere.toString();
    }
 
    public static String getSqlWhereByRange(String start, String end) {
        StringBuilder sqlWhere = new StringBuilder();
        sqlWhere.append("ind_t.data_time >= '");
        sqlWhere.append(start);
        sqlWhere.append("' ");
        sqlWhere.append("and ind_t.data_time <= '");
        sqlWhere.append(end);
        sqlWhere.append("' ");
        return sqlWhere.toString();
    }
}