如何用sqlli解析python中的datetime计算

2024-09-27 23:20:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python中的sql更新部分有一个问题

以下是检查值是1还是0的代码

for k, v in self.db_dictionary.items():        
     if self.db_dictionary[k]['check'] > 0 :
            self.c.execute('''UPDATE table SET Counts = Counts + ?,
                          Latest_Happend_Last_time = ?,
                          Current_Status = ?  
                          WHERE Name = ?''' 
                          ,[self.db_dictionary[k]['check'], 
                            self.current_time,'Alert',k])
            self.conn.commit()

            self.c.execute('''UPDATE table SET 
                          Latest_Happend_Start_time = Latest_Happend_Last_time - "datetime.timedelta(minutes='Plus_Val')",
                          How_Long_time =  Latest_Happend_Last_time - Latest_Happend_Start_time
                          WHERE Name = ?''' 
                          ,[k])
            self.conn.commit()

            self.c.execute('''UPDATE table SET Plus_Val= Plus_Val + 1 
                          WHERE Name = ?''' 
                          ,[k])
            self.conn.commit()

        elif self.db_dictionary[k]['check'] == 0:
            self.c.execute('''UPDATE table SET Current_Status = ?,
                          Plus_Val = ?
                          WHERE Name = ?''' 
                          ,['Normal',0,k])
            self.conn.commit()

我想解决这个代码区。除了下面的区域,其他代码可以工作。你知道吗

                self.c.execute('''UPDATE table SET 
                          Latest_Happend_Start_time = Latest_Happend_Last_time - "datetime.timedelta(minutes='Plus_Val')",
                          How_Long_time =  Latest_Happend_Last_time - Latest_Happend_Start_time
                          WHERE Name = ?''' 
                          ,[k])
            self.conn.commit()

具体来说

Latest_Happend_Start_time = Latest_Happend_Last_time - "datetime.timedelta(minutes='Plus_Val')",

Latest\u Happend\u Last\u time是当前时间值,Latest\u Happend\u Start\u time是发生的时间。你知道吗

如果“Latest\u Happend\u Last\u time”为“2017-03-28 10:19:31.040088+08:00”,sql数据库中的“Plus\u Val”为0

该代码表示“2017-03-28 10:19:31.040088+08:00”——“日期时间.timedelta(minutes='0')“=最近\u发生的\u开始时间\u

但最新的开始时间的实际结果是“2017”,而不是2017-03-28 10:19:31.040088+08:00我预期的值。你知道吗

如果“for”之后的“Plus\u Val”再次为1,则最新发生的开始时间的实际结果应为2017-03-28 10:18:31.040088+08:00。你知道吗

How_Long_time =  Latest_Happend_Last_time - Latest_Happend_Start_time

我希望这将调用int或float数据类型。但实际结果是“0”

例如,2017-03-28 10:19:31.040088+08:00-2017-03-28 10:18:31.040088+08:00可以是1(多长时间)

我想从1~得到结果。因为“多长时间”是指时间差,检查最近发生的最后一次和最近发生的开始时间之间的分钟数。你知道吗

我已经懂Python了。在阅读了这段带有日期时间计算的代码之后,您可以理解我在python中使用SQL所做的尝试

for i in range(check):
   Plus_Val=i
   Latest_Happend_Last_time  = datetime.datetime.now()
   Latest_Happend_Start_time= Latest_Happend_Last_time - datetime.timedelta(minutes=Plus_Val)
   How_long_time = Latest_Happend_Last_time - Latest_Happend_Start_time

请用python中的SQL帮助解决这个问题。你知道吗

谢谢你的阅读


Tags: 代码selfexecutedatetimetime时间tableupdate

热门问题