Как найти 00 в строке даты и заменить его в базе данных MySQL? - PullRequest
0 голосов
/ 07 октября 2018

Поскольку я установил NO_ZERO_IN_DATE в sql_mode, я хочу использовать

SELECT *
  FROM tbl_name 
 WHERE date_column regexp '[0-9]\d{4}-00-00' 
 order 
    by id

, чтобы найти столбец даты 00-** или **-00 или 00-00 и заменить 00 на 01.

Но мой скрипт не работает.

Заранее спасибо за любое решение.

1 Ответ

0 голосов
/ 07 октября 2018

Вы можете использовать функции даты и времени, например, DAYOFMONTH , чтобы извлечь компоненты даты, чтобы вы могли их протестировать:

SELECT * FROM tbl_name
 WHERE DAYOFMONTH(date_column) = 0 OR MONTH(date_column) = 0 
ORDER BY ID

Вам необходимо преобразовать дату встрока перед тем, как вы сможете сопоставить ее с регулярным выражением, и проще просто напрямую протестировать компоненты даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...