cơ sở dữ liệu gì bạn đang kết nối? Tôi biết Oracle có thể cầu kỳ về định dạng ngày và thích định dạng ISO 8601.
** Lưu ý: Rất tiếc, tôi vừa đọc bạn đang sử dụng MySQL. Chỉ cần định dạng ngày và thử nó như là một cuộc gọi SQL trực tiếp riêng biệt để kiểm tra.
Trong Python, bạn có thể nhận được một ngày ISO như
now.isoformat()
Ví dụ, Oracle thích ngày như
insert into x values(99, '31-may-09');
Tùy thuộc vào cơ sở dữ liệu của bạn, nếu nó là Oracle bạn có thể cần phải TO_DATE nó :
insert into x
values(99, to_date('2009/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'));
Cách sử dụng chung TO_DATE là:
TO_DATE(<string>, '<format>')
Nếu sử dụng cơ sở dữ liệu khác (tôi đã thấy con trỏ và nghĩ Oracle); Tôi có thể sai) sau đó kiểm tra các công cụ định dạng ngày của họ. Đối với MySQL, nó là DATE_FORMAT() và SQL Server là CONVERT.
Cũng sử dụng công cụ như SQLAlchemy sẽ xóa những khác biệt như thế này và giúp cuộc sống của bạn trở nên dễ dàng.
Nguồn
2009-07-16 15:08:32
Đừng bạn cần phải thêm dấu ngoặc kép quanh các tham số chuỗi ví dụ: "... VALUES ('% s', '% s', '% s')" –
Tôi cố gắng đó. Vẫn là lỗi tương tự. –