Python 在sql中插入datetime

Python 在sql中插入datetime,python,mysql,sql,wxpython,Python,Mysql,Sql,Wxpython,将日期时间值插入到其正确的列中会产生此错误 Warning (from warnings module): File "C:\Users\Owner\Desktop\sad pROG\Order.py", line 30 (Order_ID, Cust_ID,Order_Price, Order_Date)) Warning: Out of range value for column 'Order_Date' at row 1 我已将订单日期设置为datetime 这是插入格式 self

将日期时间值插入到其正确的列中会产生此错误

Warning (from warnings module):
  File "C:\Users\Owner\Desktop\sad pROG\Order.py", line 30
(Order_ID, Cust_ID,Order_Price, Order_Date))
Warning: Out of range value for column 'Order_Date' at row 1
我已将订单日期设置为datetime

这是插入格式

self.c.execute(“插入订单值(%s,%s,%s,%s)”, (订单ID、客户ID、订单价格、订单日期))

非常确定插入上述值时最后的%s应该是其他值

现在我还尝试在前端使用wx.DateTime.now()方法添加条目

def add_entry(self, event):
        """Add a new entry to the Order_Date ite"""
        # start out with blank, generic ItemEntry
        date =DateTime.Now()
        entry = o.OrderEntry("","",0.0,date)
        self.endiag = OrderDetail(self,entry)
        self.endiag.ShowModal()           



        self.ord.add_entry(entry.Order_ID,
                            entry.Cust_ID,
                            str(entry.Order_Price),
                            str(entry.Order_Date) )
aa在上面的方法中,我尝试为日期设置一个变量,它将我捕获这个特定的错误堆栈

Warning (from warnings module):
File "C:\Users\Owner\Desktop\sad pROG\Order.py", line 30
(Order_ID, Cust_ID,Order_Price, Order_Date))
Warning: Data truncated for column 'Order_Date' at row 1
根据:

DATETIME类型用于同时包含日期和时间的值 部分。MySQL检索并显示“YYYY-MM-DD”中的日期时间值 HH:MM:SS'格式。支持的范围为“1000-01-01 00:00:00”到 “9999-12-3123:59:59”

我们对您的程序一点也不熟悉,所以您可以自己调试并输出Order_日期,看看它是否符合预期的格式。另外,确保MySQL中的字段是datetime,而不是timestamp、int、date等

编辑:


如果您查看datetime的Python文档(docs.Python.org/2/library/datetime.html#datetime.datetime.now),您将看到从纪元开始算起的秒数是一个浮点值(这是我浏览和阅读的内容)。转换Python日期时间值或更改MySQL字段类型

嗯,如果是这样的话,我可以在sql语句中使用什么格式。。。。。。鉴于%s不起作用,我事先将entry.Order_Date设置为字符串?仅因为您将某些内容转换为字符串,并不意味着它将自动成为您想要的格式的字符串。另外,在Python和MySQL中都被称为
datetime
并不意味着它们是相同的格式。就像薯条在美国意味着薯条,在英国意味着炸薯条。如果您查看datetime()的Python文档,您将看到从纪元开始的秒数(这是我浏览和阅读的内容)。转换Python日期时间值或更改MySQL字段类型。不要将entry.order\u date设置为字符串。养成这种坏习惯是不好的。必须有另一个答案。我只是不知道它是什么,因为我既不使用MySQL也不使用python。。我把它作为变量从前端传递到后端。。。我不知道如何在insert sql语句中正确地强制转换它,因此数据截断错误使用now()函数以MM-DD-YYY HH:MM:SS格式显示日期时间。。。需要一种在sql语句中正确转换的方法。。。。。。