Administrator
2024-11-27 c3359e9c48cb01d627d7197c3f1d528b7efb195e
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
from db.mysql_data_delegate import Mysqldb
from third_data.history_k_data_util import HistoryKDatasUtils
from utils import tool
 
 
class KPLLimitUpDataUtil:
    @classmethod
    def get_latest_block_infos(cls, min_day=tool.date_sub(tool.get_now_date_str(), 180), code=None,
                               max_day=tool.get_now_date_str()):
        """
        @param min_day: 默认获取180天之前的
        @param code: 代码
        @return: 最近的涨停板块信息
        """
        sql = f"SELECT r.`_code`, r.`_day`, r.`_hot_block_name`, r.`_blocks` FROM `kpl_limit_up_record` r WHERE r.`_day`>='{min_day}' and r.`_day` <'{max_day}'"
 
        if code:
            sql += f" AND _code='{code}'"
        sql += " order by _create_time"
        mysqldb = Mysqldb()
        results = mysqldb.select_all(sql)
        return results
 
    @classmethod
    def get_latest_block_infos_by_day(cls, day=tool.get_now_date_str()):
        sql = f"SELECT * FROM `kpl_limit_up_record` r WHERE r.`_day`='{day}'"
        mysqldb = Mysqldb()
        results = mysqldb.select_all(sql)
        return results
 
 
 
if __name__ == '__main__':
    # 删除不是交易日期的数据
    days = HistoryKDatasUtils.get_latest_trading_date(300)
    for day in days:
        pass
    print(days)
    mysqldb = Mysqldb()
    results = mysqldb.select_all(f"SELECT _id, _day from kpl_limit_up_record r where r._day>='{days[-1]}'")
    ids = []
    for result in results:
        if result[1] not in days:
            ids.append(result[0])
            # print("删除:", result)
            if len(ids) > 10:
                sql = f"delete from kpl_limit_up_record where " + ' or '.join([f"_id='{x}'" for x in ids])
                mysqldb.execute(sql)
                ids.clear()
    pass