2013-05-23 4 views
0

вставив значения времени даты в это правильный выход колонки эта ошибкавставки даты и времени в SQL

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)", (Order_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 

ответ

0

по http://dev.mysql.com/doc/refman/5.7/en/datetime.html:

Тип DATETIME используется для значений, содержащих как дату, так и время частей. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД» Формат ЧЧ: ММ: СС. Поддерживаемый диапазон: «1000-01-01 00:00:00» до '9999-12-31 23:59:59'.

Мы не знакомы с вашей программой, поэтому отлаживаем и выдаем Order_Date для себя и видим, соответствует ли это ожидаемому формату. Кроме того, убедитесь, что поле в MySQL является даты и времени, а не отметка времени, Int, дата и т.д.

Edit:

Если вы посмотрите на документацию Python для DateTime (docs.python.org/2 /library/datetime.html#datetime.datetime.now), вы увидите, что вам дали секунды с эпохи как значение с плавающей запятой (это то, что я снял и прочитал как минимум). Либо преобразуйте значение даты и времени Python, либо измените тип поля MySQL.

+0

hmmmm Если это так, то какой формат я могу использовать в своем заявлении sql ...... учитывая, что% s не работает, и я задал запись.Order_Date как строку заранее? –

+0

Просто потому, что вы что-то прикладываете к строке, не означает, что она автоматически станет строкой в ​​нужном вам формате. Кроме того, только потому, что что-то называется 'datetime', как в Python, так и в MySQL, это не значит, что они одного формата. Так же, как чипы в Америке - картофельные чипсы, а в Англии - картофель фри. Если вы посмотрите документацию Python для datetime (http://docs.python.org/2/library/datetime.html#datetime.datetime.now), вы увидите, что вам дали секунды с эпохи (это что я просматривал и читал). Либо преобразуйте значение даты и времени Python, либо измените тип поля MySQL. – BLaZuRE

+0

Не устанавливайте entry.order_date для строки. Это плохая привычка. Должен быть другой ответ. Я просто не знаю, что это такое, потому что я работаю ни с MySQL, ни с python. –

Смежные вопросы