有一张确认收入表这个表主要字段有合同编号、开始时间、结束时间开始时间结束时间固定为每个月的开头和结尾现在怎么判断我插入一条数据不重复且月份连续
可以使用以下步骤来判断插入的数据是否满足条件:
-
获取当前月份的开始时间和结束时间,可以使用Python的datetime库来实现。
-
查询确认收入表中最后一条数据的结束时间,如果没有数据则默认为当月的开始时间。
-
判断插入的数据的开始时间是否等于上一条数据的结束时间,如果是,则说明月份连续;如果不是,则说明月份不连续。
-
判断插入的数据是否与确认收入表中已有的数据重复,可以使用合同编号、开始时间和结束时间作为联合主键进行判断。
-
如果插入的数据满足以上条件,则可以将数据插入确认收入表中,否则需要给出相应的提示信息。
以下是示例代码:
import datetime
# 获取当前月份的开始时间和结束时间
now = datetime.datetime.now()
start_time = datetime.datetime(now.year, now.month, 1)
end_time = datetime.datetime(now.year, now.month, 1) + datetime.timedelta(days=31)
end_time = datetime.datetime(end_time.year, end_time.month, 1) - datetime.timedelta(days=1)
# 查询确认收入表中最后一条数据的结束时间
last_record_end_time = start_time
last_record = Record.objects.last()
if last_record:
last_record_end_time = last_record.end_time
# 判断插入的数据是否满足条件
if start_time == last_record_end_time and \
not Record.objects.filter(contract_no=contract_no, start_time=start_time, end_time=end_time).exists():
record = Record(contract_no=contract_no, start_time=start_time, end_time=end_time)
record.save()
else:
# 给出相应的提示信息
pass
原文地址: https://www.cveoy.top/t/topic/bHto 著作权归作者所有。请勿转载和采集!