Unable to set default vale of DateTimeField to “0000-00-00 00:00:00”
1 | fld_date_time = models.DateTimeField(db_column='FLD_DATE_TIME', blank=True, null=True, default="0001-00-00 00:00:00") |
models.py中的此字段引发错误为:
["'0000-00-00 00:00:00'值的格式正确(yyyy-mm-dd hh:mm[:ss[.uuuuuu]][tz]),但它是无效的日期/时间。"]
如何在django中添加默认值?
问题是你的默认值没有意义。没有零日,也没有零月。python可以表示为
1 2 | >>> datetime.min datetime.datetime(1, 1, 1, 0, 0) |
所以1月1日,1。在一些(大多数)数据库中,范围更为严格。例如,在MySQL中,范围是:
The
DATE type is used for values with a date part but no time part.
MySQL retrieves and displaysDATE values in'YYYY-MM-DD' format.
The supported range is'1000-01-01' to'9999-12-31' .The
DATETIME type is used for values that contain both date and time
parts. MySQL retrieves and displaysDATETIME values in'YYYY-MM-DD format. The supported range is
HH:MM:SS''1000-01-01 00:00:00' to
'9999-12-31 23:59:59' .The
TIMESTAMP data type is used for values that contain both date
and time parts.TIMESTAMP has a range of'1970-01-01 00:00:01' UTC
to'2038-01-19 03:14:07' UTC.
MySQL确实有一个"零日期":
Invalid
DATE ,DATETIME , orTIMESTAMP values are converted to the
"zero" value of the appropriate type ('0000-00-00' or'0000-00-00 ).
00:00:00'
但是没有很好的方法将它包装到
您可以使用这里提出的一个解决方案,它基本上构造一个新的django
因此,您既可以使用数据库可表示的最小可表示