取得当前日期相对应的月初,月末,季初,季末,年初,年末

获取当前日期与时间相关日期
本文提供了一个Java类,用于获取当前日期的多种日期范围,包括当前日期、当前月份的初末、当前季度的初末、当前年的初末及判断闰年。使用简单,通过调用相应的方法即可获取所需的日期字符串。

转自:http://www.atimin.com/read.php/205.htm       

Atimin's Blog!

 

package vivi.test;

import java.util.Calendar;
/**
  *
  * 描述:此类用于取得当前日期相对应的月初,月末,季初,季末,年初,年末,返回值均为String字符串
  *      1、得到当前日期         today()
  *      2、得到当前月份月初      thisMonth()
  *      3、得到当前月份月底      thisMonthEnd()
  *      4、得到当前季度季初      thisSeason()
  *      5、得到当前季度季末      thisSeasonEnd()
  *      6、得到当前年份年初      thisYear()
  *      7、得到当前年份年底      thisYearEnd()
  *      8、判断输入年份是否为闰年 leapYear  
  * 注意事项:  日期格式为:xxxx-yy-zz (eg: 2007-12-05)
  * 实例:
  * @author pure
  */
public class Test {
  private int x;                  // 日期属性:年
  private int y;                  // 日期属性:月
  private int z;                  // 日期属性:日
  private Calendar localTime;     // 当前日期
  
  public Test() {
      localTime = Calendar.getInstance();
  }
  
  public static void main(String[] args){
    Test test = new Test();
    test.today();
  }
  /**
   * 功能:得到当前日期 格式为:xxxx-yy-zz (eg: 2007-12-05)
   * @return String
   * @author pure
   */
  public String today() {
    String strY = null;
    String strZ = null;
    x = localTime.get(Calendar.YEAR);
    y = localTime.get(Calendar.MONTH) + 1;
    z = localTime.get(Calendar.DATE);
    strY = y >= 10 ? String.valueOf(y) : ("0" + y);
    strZ = z >= 10 ? String.valueOf(z) : ("0" + z);
    return x + "-" + strY + "-" + strZ;
  }
  /**
    * 功能:得到当前月份月初 格式为:xxxx-yy-zz (eg: 2007-12-01)
    * @return String
    * @author pure
    */
  public String thisMonth() {
    String strY = null;
    x = localTime.get(Calendar.YEAR);
    y = localTime.get(Calendar.MONTH) + 1;
    strY = y >= 10 ? String.valueOf(y) : ("0" + y);return x + "-" + strY + "-01";
  }
  /**
    * 功能:得到当前月份月底 格式为:xxxx-yy-zz (eg: 2007-12-31)
    * @return String
    * @author pure
    **/
  public String thisMonthEnd() {
    String strY = null;
    String strZ = null;
    boolean leap = false;
    x = localTime.get(Calendar.YEAR);
    y = localTime.get(Calendar.MONTH) + 1;
    if (y == 1 || y == 3 || y == 5 || y == 7 || y == 8 || y == 10 || y == 12) {
      strZ = "31";
    }
    if (y == 4 || y == 6 || y == 9 || y == 11) {
      strZ = "30";
    }
    if (y == 2) {
      leap = leapYear(x);
      if (leap) {
        strZ = "29";
      }else {
        strZ = "28";
      }
    }
    strY = y >= 10 ? String.valueOf(y) : ("0" + y);
    return x + "-" + strY + "-" + strZ;
  }

  /**
    * 功能:得到当前季度季初 格式为:xxxx-yy-zz (eg: 2007-10-01)<br/>
      * @return String
      * @author pure
      */
  public String thisSeason() {
    String dateString = "";
    x = localTime.get(Calendar.YEAR);
    y = localTime.get(Calendar.MONTH) + 1;
    if (y >= 1 && y <= 3) {
      dateString = x + "-" + "01" + "-" + "01";
    }
    if (y >= 4 && y <= 6) {
      dateString = x + "-" + "04" + "-" + "01";
    }
    if (y >= 7 && y <= 9) {
      dateString = x + "-" + "07" + "-" + "01";
    }
    if (y >= 10 && y <= 12) {
      dateString = x + "-" + "10" + "-" + "01";
    }
    return dateString;
    }

  /**
    * 功能:得到当前季度季末 格式为:xxxx-yy-zz (eg: 2007-12-31)<br/>
    * @return String
    * @author pure
    */
  public String thisSeasonEnd() {
    String dateString = "";
    x = localTime.get(Calendar.YEAR);
    y = localTime.get(Calendar.MONTH) + 1;
    if (y >= 1 && y <= 3) {
      dateString = x + "-" + "03" + "-" + "31";
    }
    if (y >= 4 && y <= 6) {
      dateString = x + "-" + "06" + "-" + "30";
    }
    if (y >= 7 && y <= 9) {
      dateString = x + "-" + "09" + "-" + "30";
    }
    if (y >= 10 && y <= 12) {
      dateString = x + "-" + "12" + "-" + "31";
    }
    return dateString;
  }

  /**
    * 功能:得到当前年份年初 格式为:xxxx-yy-zz (eg: 2007-01-01)<br/>
    * @return String
    * @author pure
    */
  public String thisYear() {
    x = localTime.get(Calendar.YEAR);
    return x + "-01" + "-01";
  }
  
  /**
    * 功能:得到当前年份年底 格式为:xxxx-yy-zz (eg: 2007-12-31)<br/>
    * @return String
    * @author pure
    */
  public String thisYearEnd() {
    x = localTime.get(Calendar.YEAR);
    return x + "-12" + "-31";
  }
  
  /**
    * 功能:判断输入年份是否为闰年<br/>
    * @param year
    * @return 是:true  否:false
    * @author pure
    */
  public boolean leapYear(int year) {
    boolean leap;
    if (year % 4 == 0) {
      if (year % 100 == 0) {
        if (year % 400 == 0) leap = true;
          else leap = false;
        }
      else leap = true;
    }
    else leap = false;
    return leap;
  }
}

# *****************************************头部注释模块************************************** #脚本名称:rpt_a_mfin_tax_model_distg_monitor_dtl.py #功能说明:税易贷模型区分度监控 #更新方式:每月全量 #更新对象:{RPT}.A_MFIN_TAX_MODEL_DISTG_MONITOR_dtl #创 建 人:gsp #创建日期:20240410 #运行周期:月 #备 注: #维护信息: # ******************************************************************************************* # -*- coding: utf-8 -*- import atexit from datetime import datetime import sys import os import subprocess import re # -- 1.验证输入参数是否正确-- # if len(sys.argv) == 2: ETL_TX_DT = sys.argv[1] else: print("usage :python xxx.py YYYYMMDD") exit(-1) ETL_HOME = os.path.abspath(os.environ['ETL_HOME']) if not ETL_HOME: print("Error:you must define a ETL_HOME before import etl module") exit(-1) # -- 2.日期及变量初始化-- # # -- 自定义模块-- # from config import db from log import Log import etl MAX_DATE = etl.MAX_DATE MIN_DATE = etl.MIN_DATE NULL_DATE = etl.NULL_DATE LEG_DATE = etl.LEG_DATE I_MB_DT = etl.I_MB_DT #月初日期 I_ME_DT = etl.I_ME_DT #月末日期 I_QB_DT = etl.I_QB_DT #季初日期 I_QE_DT = etl.I_QE_DT #季末日期 I_HB_DT = etl.I_HB_DT #半年初日期这个 I_HE_DT = etl.I_HE_DT #半年末日期 I_YB_DT = etl.I_YB_DT #年初日期 I_YE_DT = etl.I_YE_DT #年末日期 I_LAST_DT = etl.I_LAST_DT #上日日期 I_NEXT_DT = etl.I_NEXT_DT #下日日期 I_LMB_DT = etl.I_LMB_DT #上月初日期 I_LME_DT = etl.I_LME_DT #上月末日期 I_LQB_DT = etl.I_LQB_DT #上季初日期 I_LQE_DT = etl.I_LQE_DT #上季末日期 I_NMOM_DT = etl.I_NMOM_DT #下月同期日期 I_NYOY_DT = etl.I_NYOY_DT #明年同期日期 I_LYOY_DT = etl.I_LYOY_DT #去年同期日期 I_LMOM_DT = etl.I_LMOM_DT #上月同期日期 I_LQOQ_DT = etl.I_LQOQ_DT #上季同期日期 I_MATTY_DT = etl.I_MATTY_DT #滚动年开始累积日期 I_MATTH_DT = etl.I_MATTH_DT #滚动半年年开始累积日期 I_MQTTQ_DT = etl.I_MQTTQ_DT #滚动季开始累积日期 I_MMTTM_DT = etl.I_MMTTM_DT #滚动月开始累积日期 MMTTM_DAYS = etl.MMTTM_DAYS #滚动月天数 MQTTQ_DAYS = etl.MQTTQ_DAYS #滚动季天数 MATTY_DAYS = etl.MATTY_DAYS #滚动年天数 MATTH_DAYS = etl.MATTH_DAYS #滚动半年天数 dwa_host = etl.dwa_host dwa_port = etl.dwa_port dwa_db_rpt = etl.dwa_db_rpt dwa_db_fdm = etl.dwa_db_fdm dwa_db_cdm = etl.dwa_db_cdm dwa_username = etl.dwa_usr_rpt dwa_password = etl.dwa_pwd_rpt RPT = etl.dwa_db_rpt FDM = etl.dwa_db_fdm CDM = etl.dwa_db_cdm #-- 3.初始化日志-- # log = Log('dwa', ETL_TX_DT) log_filename = log.logname log.info("BEGIN . ") """ 函数名称:execute_gbase_sql 参数(2个): 管道句柄 运行sql 功能: 将sql语句发送到gbase去执行 """ def execute_gbase_sql(bformatsql): try: prefix_sql = "\n" suffix_sql = "\nquit\n" sql = prefix_sql + bformatsql + suffix_sql gsql_str_p = f"set -o pipefail; gccli -h {dwa_host} -P {dwa_port} -u {dwa_username} -p\"{dwa_password}\" -D {dwa_db_rpt} -v -v |tee -a {log_filename}" p = subprocess.Popen(gsql_str_p, shell=True, stdin=subprocess.PIPE, stdout=sys.stdout, stderr=sys.stdout,close_fds=True,universal_newlines=True, bufsize=1) output = p.communicate(sql) return p.returncode except: log.exception("Execute [%s] failed.%s" % (gsql_str_p,output.decode('utf-8'))) return -1 @atexit.register def __exit__(): """print a log when exit""" log.info("END\n") # -- 4.执行sql内容-- # # -- bsql1支持重跑sql及临时表创建-- # bsql1=""" /*Step1:创建目标表之前先清除目标表当天数据*/ DELETE FROM {RPT}.A_MFIN_TAX_MODEL_DISTG_MONITOR_dtl WHERE data_dt = DATE '{ETL_TX_DT}'; """ # -生成mapping映射- # bsqlmapping=""" """ # -bsql2算法逻辑主体实现- # bsql2=""" /*step1:创建临时表得到评分卡模型数据*/ CREATE TEMPORARY TABLE {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 (DATA_DT DATE not NULL COMMENT '数据日期' ,PROD_NAME VARCHAR(100) COMMENT '产品名称' ,CONTRACT_SEQ_NO VARCHAR(255) DEFAULT NULL COMMENT '合同流水号' ,MODEL_BRCH_NUM VARCHAR(60) DEFAULT NULL COMMENT '模型分数' ,approve_dt varchar(32) DEFAULT NULL COMMENT '申请时间' ,label VARCHAR(12) DEFAULT NULL COMMENT 'label' )DISTRIBUTED BY ('CONTRACT_SEQ_NO') comment='得到评分卡模型数据'; /*step2:往临时表插入数据*/ INSERT INTO {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 SELECT data_dt, PROD_NAME, CONTRACT_SEQ_NO, idx_val AS MODEL_BRCH_NUM, approve_dt, label FROM {RPT}.A_MFIN_TAX_MODEL_DTCT_TAB_DTL a WHERE MODEL_NAME LIKE '%评分卡模型%' AND idx_name LIKE '%得分' AND length(CONTRACT_SEQ_NO)>0 AND data_dt=DATE '{ETL_TX_DT}' ; /*step3:向模型区分度监测插入AUC季、月数据*/ INSERT INTO {RPT}.A_MFIN_TAX_MODEL_DISTG_MONITOR_dtl (DATA_DT -- '数据日期' ,PROD_NAME-- '产品名称' ,FLAG -- '标志' ,appl_date -- '申请季度' ,AUC ) SELECT DATE '{ETL_TX_DT}' AS data_dt-- '数据日期' ,PROD_NAME-- '产品名称' ,'季'AS tag-- '标志' ,appl_quart-- '申请季度' ,SUM(( tpr + pre_tpr )/ 2 *( fpr - pre_fpr )) AS AUC FROM ( SELECT PROD_NAME, MODEL_BRCH_NUM, appl_quart, cum_bad / tot_bad AS tpr, cum_good / tot_good AS fpr, lead(cum_bad / tot_bad) OVER(ORDER BY cum_bad / tot_bad DESC) AS pre_tpr, lead(cum_good / tot_good) OVER(ORDER BY cum_good / tot_good DESC) AS pre_fpr FROM ( SELECT PROD_NAME ,MODEL_BRCH_NUM ,CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt))AS appl_quart ,COUNT( CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt)) ORDER BY MODEL_BRCH_NUM ASC) AS cum_bad ,COUNT( CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt)) ) AS tot_bad ,COUNT( CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt)) ORDER BY MODEL_BRCH_NUM ASC) AS cum_good ,COUNT( CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt)) ) AS tot_good FROM {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 a WHERE data_dt=DATE '{ETL_TX_DT}' AND DATE '{ETL_TX_DT}' = DATE '{I_QE_DT}'-- 只需要季度末 ) b ) t GROUP BY PROD_NAME ,appl_quart UNION ALL SELECT DATE '{ETL_TX_DT}' AS data_dt-- '数据日期' ,PROD_NAME-- '产品名称' ,'月'AS tag-- '标志' ,appl_month-- '申请季度' ,SUM(( tpr + pre_tpr )/ 2 *( fpr - pre_fpr )) AS AUC FROM ( SELECT PROD_NAME, MODEL_BRCH_NUM, appl_month, cum_bad / tot_bad AS tpr, cum_good / tot_good AS fpr, lead(cum_bad / tot_bad) OVER(ORDER BY cum_bad / tot_bad DESC) AS pre_tpr, lead(cum_good / tot_good) OVER(ORDER BY cum_good / tot_good DESC) AS pre_fpr FROM ( SELECT PROD_NAME ,MODEL_BRCH_NUM ,LEFT(approve_dt,7)AS appl_month ,COUNT( CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7) ORDER BY MODEL_BRCH_NUM ASC) AS cum_bad ,COUNT( CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7) ) AS tot_bad ,COUNT( CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7) ORDER BY MODEL_BRCH_NUM ASC) AS cum_good ,COUNT( CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7) ) AS tot_good FROM {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 a WHERE data_dt=DATE '{ETL_TX_DT}' AND DATE '{ETL_TX_DT}' = DATE '{I_ME_DT}' -- 只需要月末数据 ) b ) t GROUP BY PROD_NAME ,appl_month; /*step4:向模型区分度监测插入KS季、月数据*/ INSERT INTO {RPT}.A_MFIN_TAX_MODEL_DISTG_MONITOR_dtl (DATA_DT -- '数据日期' ,PROD_NAME-- '产品名称' ,FLAG -- '标志' ,appl_date -- '申请季度' ,CONTRACT_NUM -- '合同数' ,KS ) SELECT DATE '{ETL_TX_DT}' AS data_dt-- '数据日期' ,PROD_NAME-- '产品名称' ,'季'AS tag-- '标志' ,appl_quart-- '申请季度' ,COUNT(DISTINCT CONTRACT_SEQ_NO)AS 合同数-- '合同数' ,MAX(abs(quarter_cum_bad/quarter_tot_bad -quarter_cum_good/quarter_tot_good))AS KS from ( SELECT PROD_NAME ,CONTRACT_SEQ_NO ,MODEL_BRCH_NUM ,CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt))AS appl_quart ,COUNT(CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt)) ORDER BY MODEL_BRCH_NUM asc) AS quarter_cum_bad ,COUNT(CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt))) AS quarter_tot_bad ,COUNT(CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt))ORDER BY MODEL_BRCH_NUM asc) AS quarter_cum_good ,COUNT(CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY CONCAT(LEFT(approve_dt,4),'Q',quarter(approve_dt))) AS quarter_tot_good FROM {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 a WHERE data_dt=DATE '{ETL_TX_DT}' AND DATE '{ETL_TX_DT}' = DATE '{I_QE_DT}'-- 只需要季度末 ) c GROUP BY PROD_NAME ,appl_quart UNION ALL SELECT DATE '{ETL_TX_DT}' AS data_dt-- '数据日期' ,PROD_NAME-- '产品名称' ,'月'AS tag-- '标志' ,appl_month-- '申请月份' ,COUNT(DISTINCT CONTRACT_SEQ_NO)AS 合同数-- '合同数' ,MAX(abs(month_cum_bad/month_tot_bad -month_cum_good/month_tot_good))AS KS from ( SELECT PROD_NAME ,CONTRACT_SEQ_NO ,MODEL_BRCH_NUM ,LEFT(approve_dt,7)AS appl_month ,COUNT(CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7) ORDER BY MODEL_BRCH_NUM asc) AS month_cum_bad ,COUNT(CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7)) AS month_tot_bad ,COUNT(CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7) ORDER BY MODEL_BRCH_NUM asc) AS month_cum_good ,COUNT(CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(PARTITION BY LEFT(approve_dt,7)) AS month_tot_good FROM {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 a WHERE data_dt=DATE '{ETL_TX_DT}' AND DATE '{ETL_TX_DT}' = DATE '{I_ME_DT}' -- 只需要月末数据 ) c GROUP BY PROD_NAME ,appl_month; /*step5:向模型区分度监测插入AUC上线以来数据*/ INSERT INTO {RPT}.A_MFIN_TAX_MODEL_DISTG_MONITOR_dtl (DATA_DT -- '数据日期' ,PROD_NAME-- '产品名称' ,FLAG -- '标志' ,AUC ) SELECT DATE '{ETL_TX_DT}' AS data_dt-- '数据日期' ,PROD_NAME-- '产品名称' ,'上线以来'AS tag -- '标志' ,SUM(( tpr + pre_tpr )/ 2 *( fpr - pre_fpr )) AS AUC FROM ( SELECT PROD_NAME, MODEL_BRCH_NUM, cum_bad / tot_bad AS tpr, cum_good / tot_good AS fpr, lead(cum_bad / tot_bad) OVER(ORDER BY cum_bad / tot_bad DESC) AS pre_tpr, lead(cum_good / tot_good) OVER(ORDER BY cum_good / tot_good DESC) AS pre_fpr FROM ( SELECT PROD_NAME, MODEL_BRCH_NUM, COUNT( CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(ORDER BY MODEL_BRCH_NUM ASC) AS cum_bad, COUNT( CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER() AS tot_bad, COUNT( CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(ORDER BY MODEL_BRCH_NUM ASC) AS cum_good, COUNT( CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER() AS tot_good FROM {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 a WHERE data_dt=DATE '{ETL_TX_DT}' AND DATE '{ETL_TX_DT}' = DATE '{I_ME_DT}' -- 只需要月末数据 ) b ) t GROUP BY PROD_NAME; /*step6:向模型区分度监测插入KS上线以来数据*/ INSERT INTO {RPT}.A_MFIN_TAX_MODEL_DISTG_MONITOR_dtl (DATA_DT -- '数据日期' ,PROD_NAME-- '产品名称' ,FLAG -- '标志' ,CONTRACT_NUM -- '合同数' ,KS ) SELECT DATE '{ETL_TX_DT}' AS data_dt-- '数据日期' ,PROD_NAME-- '产品名称' ,'上线以来'AS tag-- '标志' ,count(DISTINCT CONTRACT_SEQ_NO)AS 合同数-- '合同数' ,max(abs(cum_bad/tot_bad -cum_good/tot_good))AS KS FROM ( SELECT PROD_NAME ,CONTRACT_SEQ_NO ,MODEL_BRCH_NUM ,COUNT(CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(ORDER BY MODEL_BRCH_NUM asc) AS cum_bad ,COUNT(CASE WHEN label = 1 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER() AS tot_bad ,COUNT(CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER(ORDER BY MODEL_BRCH_NUM asc) AS cum_good ,COUNT(CASE WHEN label = 0 THEN CONTRACT_SEQ_NO ELSE NULL END ) OVER() AS tot_good FROM {RPT}.VT_A_MFIN_TAX_MODEL_DISTG_MONITOR_01 a WHERE data_dt=DATE '{ETL_TX_DT}' AND DATE '{ETL_TX_DT}' = DATE '{I_ME_DT}' -- 只需要月末数据 ) c GROUP BY PROD_NAME ; """ # -- 主调程序-- # bsql=bsql1+bsqlmapping+bsql2 bformatsql = bsql.format_map(vars()) ret_code = execute_gbase_sql(bformatsql) if ret_code : log.error(" ERROR - ERROR .") exit(-1) else: log.info("SUCESS . ") 对比下这个的auc
最新发布
08-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值