0
0

More than 1 year has passed since last update.

Python、MySQLのDATETIME(マイクロ秒付き)の扱い

Last updated at Posted at 2022-01-26

やりたいこと

2022-01-20 12:34:56.123456というマイクロ秒まで含んだ形式で時刻を表し、MySQLに格納したりPythonで扱ったりしたい。

本記事では説明しないこと

PythonでMySQLからデータを引っ張ってくる部分。
pymysql等のリファレンスをご参照ください。

MySQL側

MySQLでDATETIME(6)を扱う
CREATE TABLE tbl (dt DATETIME(6));
INSERT INTO tbl VALUES('2022-01-20 00:16:07.123456');

Python側

pythonで表現するDATETIME(6)
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
#=> '2022-01-20 00:16:07.123456'

説明

MySQLでマイクロ秒までついた時刻を扱いたい時はDATETIME(fsp)という型が使えます。fspは小数点の桁を表す、0から6の整数です。(MySQL 5.6.4 以降)

MySQL 5.6.4 以降では、マイクロ秒 (6 桁) までの精度を持つ TIME、DATETIME、およびTIMESTAMP 値に対して小数秒のサポートを拡張しています。

また、Python側ではdatetimeをstrftime()%Y-%m-%d %H:%M:%S.%f形式の文字列に変換しています。

%f 指定子は 1 桁から 6 桁の数字を受け付け、右側から0埋めされます。
000000, 000001, ..., 999999

参考

MySQLのマイクロ秒 https://dev.mysql.com/doc/refman/5.6/ja/fractional-seconds.html
strftime https://docs.python.org/ja/3/library/datetime.html#strftime-strptime-behavior

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0