Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как в БД сменить только год публикации всех новостей?

Как в БД сменить только год публикации всех новостей?


     08.03.2019    Все вопросы » MySQL    1258

вопрос
Приветствую!

Как (каким запросом) сменить только год публикации всех новостей? В идеале сменить год у всех новостей в диапазоне 2012-2017 на 2018, либо просто 2012 на 2018 (и т.д. для каждого года отдельным запросом), при этом сохранив месяц и число публикации?

Ответил: Flash



UPDATE dle_post
SET `date` = DATE_FORMAT(`date`, '2018-%m-%d %T')
WHERE `date` BETWEEN "2012-01-01" AND "2017-12-31";

5 комментариев

finik
Юзер

finik - 8 марта 2019 21:49 -

FLASH, спасибо, работает.

Еще вопрос: как
в view_edit проставить значение 1 для всех новостей (выводить информацию о редактирование);
в reason прописать значение "Обновлено";
в editdate присвоить рандомное значение, но на более позднюю дату, чем дата публикации?

finik
Юзер

finik - 9 марта 2019 10:04 -

С двумя запросами разобрался сам:

UPDATE dle_post_extras SET view_edit = '1'

UPDATE dle_post_extras SET reason = 'Информация обновлена'


А вот с editdate не получается. Подскажите, как изменить дату редактирования, чтобы она была равна или больше чем дата публикации, но не более чем на месяц от даты публикации?

finik
Юзер

finik - 9 марта 2019 19:13 -

Что не так в данном запросе, почему выставляет всем значениям 2038 год?
UPDATE `dle_post_extras` SET `editdate` = FROM_UNIXTIME( 
  RAND( ) * ( UNIX_TIMESTAMP( '2018-12-31 00:00:00' ) - UNIX_TIMESTAMP( '2018-06-01 00:00:00' ) ) + UNIX_TIMESTAMP( '2018-06-01 00:00:00' )
)

Proff
Юзер

Proff - 9 марта 2019 19:47 -

Ты бы цель написал, а не запрос. Запрос тупой. Даже без цели, он - тупой.
Почитай на тему "Проблема 2038 года".
Может и задумаешься над умножением...

finik
Юзер

finik - 9 марта 2019 20:03 -

цель - задать рандомную дату редактирования в заданном диапазоне

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх