簡體   English   中英

peewee 日期時間字段到微秒

[英]peewee datetime field to microsecond

我將我的數據字段定義為

class test(BaseModel):
    start = DateTimeField(formats='%Y-%m-%d %H:%M:%S.%f')

我插入了一堆格式與2005-06-03 16:12:01.215908相同的數據,我select start from test;

+---------------------+
| start               |
+---------------------+
| 2005-06-05 01:17:45 |
| 2005-06-05 00:47:47 |
| 2005-06-03 16:12:01 |
| ...                 |

我查了文檔http://docs.peewee-orm.com/_/downloads/en/latest/pdf/ ,根據第167頁頂部的信息,我不知道為什么格式沒有按預期工作。

當您聲明 MySQL 架構時,您需要指定精度為 6:

https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html

您應該能夠創建一個 peewee 子類,將其指定為發出的 DDL 的一部分:

class MyDateTimeField(DateTimeField):
    def get_modifiers(self):
        return [6]

...
start = MyDateTimeField()

我對我的 MariaDB 10.4 安裝進行了測試,它工作正常。


首先,格式需要是一個列表。 正如你所寫的那樣,它會一次執行一個字符,這絕對不是你想要的。

DateTimeField已經將您使用的格式定義為選項列表中的第一個格式。 因此,如果您將字符串指定為“開始”值,則它們已經被正確解析,而無需您指定任何格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM