0

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

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

我已将 Order_Date 设置为日期时间

这是插入格式

self.c.execute("插入订单值 (%s, %s, %s,%s)", (Or​​der_ID, Cust_ID,Order_Price, Order_Date))

很确定在插入上述值时最后一个 %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) )

aaand 在上面的方法中,我尝试为日期设置一个变量,它使我得到了这个特定的错误堆栈

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
4

1 回答 1

0

根据http://dev.mysql.com/doc/refman/5.7/en/datetime.html

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

我们完全不熟悉您的程序,因此请自行调试和输出 Order_Date 并查看它是否符合预期的格式。另外,请确保您在 MySQL 中的字段是日期时间,而不是时间戳、整数、日期等。

编辑:

如果您查看日期时间的 Python 文档(docs.python.org/2/library/datetime.html#datetime.datetime.now),您会看到自纪元以来的秒数作为浮点值(即至少我略读和阅读的内容)。转换您的 Python 日期时间值或更改您的 MySQL 字段类型。

于 2013-05-23T20:39:32.470 回答