-- INNODB WORKS AS EXPECTED:
drop table if exists test_zero_date_innodb;
create table if not exists test_zero_date_innodb
(
	id int,
    termin datetime
) ENGINE=InnoDB DEFAULT CHARSET UTF8MB4;
insert into test_zero_date_innodb values (1, '0000-00-00 00:00:00'), (2, '2020-01-01 00:00:00'); -- writes 0000-00-00 00:00:00
select * from test_zero_date_innodb; -- shows also 0000-00-00 00:00:00
update test_zero_date_innodb set termin = '0000-00-00 00:00:00' where id = 1; -- writes 0000-00-00 00:00:00
select * from test_zero_date_innodb;  -- shows also 0000-00-00 00:00:00
select * from test_zero_date_innodb where termin is null; -- 0 rows
select * from test_zero_date_innodb where termin = '0000-00-00 00:00:00'; -- 1 row


-- COLUMNSTORE WRITES NULL IN UPDATE STATEMENT WHERE INSERT STATEMENT WRITES '0000-00-00 00:00:00' (see "!!!" in comments):
drop table if exists test_zero_date_columnstore;
create table if not exists test_zero_date_columnstore
(
	id int,
    termin datetime
) ENGINE=Columnstore DEFAULT CHARSET UTF8MB4;
insert into test_zero_date_columnstore values (1, '0000-00-00 00:00:00'), (2, '2020-01-01 00:00:00'); -- writes 0000-00-00 00:00:00
select * from test_zero_date_columnstore; -- shows also 0000-00-00 00:00:00
update test_zero_date_columnstore set termin = '0000-00-00 00:00:00' where id = 1; -- writes null !!!
select * from test_zero_date_columnstore;  -- shows null instead of 0000-00-00 00:00:00 !!!
select * from test_zero_date_columnstore where termin is null; -- 1 row !!!
select * from test_zero_date_columnstore where termin = '0000-00-00 00:00:00'; -- 0 rows !!!