[英]Peewee select query on a datetime field does not return a datetime object
[英]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.