如何从mysql中的sql_mode中删除NO_ZERO_DATE?

mem*_*und 7 mysql sql

我需要NO_ZERO_DATE从 全局删除sql_mode.

删除时是否可以保留任何默认值?

类似于伪代码 my.cnf::

sql_mode = $sql_mode(regex.replace(NO_ZERO_DATE, '');
Run Code Online (Sandbox Code Playgroud)

优点是我不会在未来版本的mysql.

Aki*_*ina 8

SET @@sql_mode := REPLACE(@@sql_mode, 'NO_ZERO_DATE', '');
Run Code Online (Sandbox Code Playgroud)

小提琴

如果需要,您可以将会话模式存储在变量中并在查询后恢复:

SET @@sql_mode := REPLACE(@old_sql_mode := @@sql_mode, 'NO_ZERO_DATE', '');
-- execute your queries
SET @@sql_mode := @old_sql_mode;
Run Code Online (Sandbox Code Playgroud)