Postgre类型timestamp 插入"0000-00-00 00:00:00" 失败
create table mytbl1 (dte timestamp);
insert into mytbl1 values (now());
--Query returned successfully: one row affected
insert into mytbl1 values ('0000-00-00 00:00:00');
--ERROR: date/time field value out of range: "0000-00-00 00:00:00"
PostgreSQL 不支持 0 或 0000-00-00 00:00:00 类型的数据
解决办法:
- 直接把对应字字段 ‘0000-00-00 00:00:00’ 赋值null ,可以插入成功
- 使用 NULLIF()函数做一个类型转换
insert into mytbl1
values(NULLIF('0000-00-00 00:00:00','0000-00-00 00:00:00')::timestamp);
参考:https://stackoverflow.com/questions/33344587/insert-0000-00-00-000000-datetime-from-mysql-to-postgresql