Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Tôi có một cột ngày trong bảng MySQL. Tôi muốn chèn một đối tượng

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
9 vào cột này. Tôi nên sử dụng những gì trong câu lệnh thực thi?

Tôi đã thử:

now = datetime.datetime(2009,5,5)

cursor.execute("INSERT INTO table
(name, id, datecolumn) VALUES (%s, %s
, %s)",("name", 4,now))

Tôi đang gặp lỗi như:

now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
0 Tôi nên sử dụng gì thay vì
now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
1?

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

hỏi ngày 16 tháng 7 năm 2009 lúc 9:29Jul 16, 2009 at 9:29

1

Trong một trường thời gian, sử dụng:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')

Tôi nghĩ

now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
2 cũng áp dụng cho
now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
3.

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Fobersteiner

18,9K5 Huy hiệu vàng32 Huy hiệu bạc59 Huy hiệu Đồng5 gold badges32 silver badges59 bronze badges

Đã trả lời ngày 22 tháng 12 năm 2010 lúc 11:56Dec 22, 2010 at 11:56

7

Bạn rất có thể nhận được kiểu mẫu vì bạn cần báo giá xung quanh giá trị Datecolumn.

Try:

now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))

Liên quan đến định dạng, tôi đã thành công với lệnh trên (bao gồm cả mili giây) và với:

now.strftime('%Y-%m-%d %H:%M:%S')

Hi vọng điêu nay co ich.

Martin Thoma

Huy hiệu vàng 115K150575 Huy hiệu bạc886 Huy hiệu đồng150 gold badges575 silver badges886 bronze badges

Đã trả lời ngày 30 tháng 8 năm 2012 lúc 6:59Aug 30, 2012 at 6:59

EdvinasingvinasEdvinas

7056 Huy hiệu bạc8 Huy hiệu Đồng6 silver badges8 bronze badges

2

Hãy thử sử dụng

now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
4 để có được đối tượng
now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
5 thay vì
now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
6.

Nếu điều đó không hoạt động, thì việc chuyển đổi nó thành một chuỗi sẽ hoạt động:

now = datetime.datetime(2009,5,5)
str_now = now.date().isoformat()
cursor.execute('INSERT INTO table (name, id, datecolumn) VALUES (%s,%s,%s)', ('name',4,str_now))

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Đã trả lời ngày 16 tháng 7 năm 2009 lúc 9:39Jul 16, 2009 at 9:39

WoganwoganWogan

67K5 Huy hiệu vàng33 Huy hiệu bạc35 Huy hiệu Đồng5 gold badges33 silver badges35 bronze badges

1

Sử dụng phương pháp Python

now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
7, trong đó định dạng =
now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
8.

import datetime

now = datetime.datetime.utcnow()

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, %s)",
               ("name", 4, now.strftime('%Y-%m-%d %H:%M:%S')))

Múi giờ

Nếu múi giờ là một mối quan tâm, múi giờ MySQL có thể được đặt cho UTC như sau:

cursor.execute("SET time_zone = '+00:00'")

Và múi giờ có thể được đặt trong Python:

now = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc)

Tài liệu MySQL

MySQL nhận ra các giá trị DateTime và Dấu thời gian ở các định dạng sau:

Là một chuỗi trong một trong hai 'yyyy-mm-dd hh: mm: ss' hoặc 'yy-mm-dd hh: mm: ss' định dạng. Một cú pháp thoải mái của người Viking cũng được phép ở đây: bất kỳ ký tự dấu câu nào cũng có thể được sử dụng làm dấu phân cách giữa các phần ngày hoặc các phần thời gian. Ví dụ: '2012-12-31 11:30:45', '2012^12^31 11+30+45', '2012/12/31 11*30*45', và '2012@12@31 11 ^30^45 'tương đương.'YYYY-MM-DD HH:MM:SS' or 'YY-MM-DD HH:MM:SS' format. A “relaxed” syntax is permitted here, too: Any punctuation character may be used as the delimiter between date parts or time parts. For example, '2012-12-31 11:30:45', '2012^12^31 11+30+45', '2012/12/31 11*30*45', and '2012@12@31 11^30^45' are equivalent.

Phân định duy nhất được công nhận giữa phần ngày và phần thời gian và phần giây phân số là điểm thập phân.

Các bộ phận ngày và thời gian có thể được phân tách bằng T chứ không phải là một không gian. Ví dụ: '2012-12-31 11:30:45' '2012-12-31T11: 30: 45' là tương đương.

Là một chuỗi không có dấu phân cách trong định dạng 'yyyymmddhhmmss' hoặc 'yymmddhmmss', với điều kiện là chuỗi có ý nghĩa như một ngày. Ví dụ: '20070523091528' và '070523091528' được hiểu là '2007-05-23 09:15:28', nhưng '071122129015' là bất hợp pháp (nó có một phần phút không 00:00 '.

Là một con số ở định dạng YyyyMMDDHHMMSS hoặc YYMMDDHMMSS, với điều kiện là số này có ý nghĩa như một ngày. Ví dụ, 19830905132800 và 830905132800 được hiểu là '1983-09-05 13:28:00'.

Đã trả lời ngày 14 tháng 4 năm 2019 lúc 18:00Apr 14, 2019 at 18:00

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Bạn đang kết nối cơ sở dữ liệu nào? Tôi biết Oracle có thể kén chọn các định dạng ngày và lượt thích ISO & NBSP; 8601.

** Lưu ý: Rất tiếc, tôi vừa đọc bạn đang ở trên mysql. Chỉ cần định dạng ngày và thử nó như một cuộc gọi SQL trực tiếp riêng để kiểm tra.

Trong Python, bạn có thể nhận được một ngày ISO như

now.isoformat()

Chẳng hạn, Oracle thích ngày thích

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 đó là oracle, bạn có thể cần phải làm điều đó:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
0

Việc sử dụng chung của TO_DATE là:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
1

Nếu sử dụng một cơ sở dữ liệu khác (tôi thấy con trỏ và nghĩ rằng 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, đó là Date_Format () và SQL & NBSP; Máy chủ được chuyển đổi.

Ngoài ra, sử dụng một công cụ như Sqlalchemy sẽ loại bỏ những khác biệt như thế này và làm cho cuộc sống của bạn dễ dàng.

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Đã trả lời ngày 16 tháng 7 năm 2009 lúc 15:08Jul 16, 2009 at 15:08

Ryan Christensenryan ChristensenRyan Christensen

7,7931 Huy hiệu vàng26 Huy hiệu bạc25 Huy hiệu đồng1 gold badge26 silver badges25 bronze badges

1

Nếu bạn chỉ đang sử dụng python datetime.date (không phải là DateTime.datetime đầy đủ), chỉ cần truyền ngày làm chuỗi. Điều này rất đơn giản và hoạt động đối với tôi (MySQL, Python 2.7, Ubuntu). Cột

now = datetime.datetime(2009, 5, 5)

cursor.execute("INSERT INTO table (name, id, datecolumn) VALUES (%s, %s, '%s')",
               ("name", 4, now))
9 là trường Ngày MySQL, biến Python
now.strftime('%Y-%m-%d %H:%M:%S')
0 là
now.strftime('%Y-%m-%d %H:%M:%S')
1.

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
2

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Phillip

2.1653 huy hiệu vàng25 Huy hiệu bạc40 Huy hiệu đồng3 gold badges25 silver badges40 bronze badges

Đã trả lời ngày 16 tháng 5 năm 2017 lúc 0:08May 16, 2017 at 0:08

Jbartasjbartasjbartas

3072 Huy hiệu bạc6 Huy hiệu Đồng2 silver badges6 bronze badges

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
3

Mã trên sẽ không thành công là "DateTime.now ()" Sản xuất "DateTime.Datetime (2014, 2, 11, 1, 16)" làm giá trị tham số để chèn câu lệnh.

Sử dụng phương thức sau để nắm bắt DateTime cung cấp giá trị chuỗi.

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
4

Tôi đã có thể chạy thành công mã sau khi thay đổi ...

Đã trả lời ngày 22 tháng 12 năm 2021 lúc 2:18Dec 22, 2021 at 2:18

SunilsunilSunil

663 huy hiệu đồng3 bronze badges

Ví dụ: Ngày là 5/5/22 Chuyển đổi nó thành định dạng ngày MySQL 2022-05-05 để chèn bản ghi vào cơ sở dữ liệu MySQL

Mã dưới đây:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
5

Output:

Trước 5/5/22

Sau 2022-05-05 (định dạng MySQL, bạn có thể dễ dàng chèn vào cơ sở dữ liệu)
(mysql format you can easily insert into database)

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Đã trả lời ngày 25 tháng 10 lúc 7:00Oct 25 at 7:00

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

Khi nào vào T-SQL

Điều này thất bại:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
6

những công việc này:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
7

cách dễ dàng:

import time    
time.strftime('%Y-%m-%d %H:%M:%S')
8

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql

IVCUBR

1.7989 Huy hiệu vàng19 Huy hiệu bạc26 Huy hiệu đồng9 gold badges19 silver badges26 bronze badges

Đã trả lời ngày 4 tháng 10 năm 2019 lúc 10:54Oct 4, 2019 at 10:54

Hướng dẫn python insert datetime to mysql - python chèn datetime vào mysql