Обновить рандомно дату в базе

D
На сайте с 28.06.2008
Offline
1114
459

Есть таблица - table

В ней поле created, типа datetime. Формат записи такой - 2012-02-07 21:13:36

Не подскажите код php, который позволит обновить рандомно данные в этом поле в заданном диапазоне дат?

Например я задаю диапазон

2010-01-01 / 2015-01-01

и срипт от балды рандомно как хочет записывает разные даты с этом промежутке в поле datetime

ДП
На сайте с 23.11.2009
Offline
203
#1

Я бы в timstamp перевел эти даты, а там просто сгенерить число в нужном диапазоне надо будет. Обратно можно и через php-шную date() дату формировать в нужном формате или прям в mysql через FROM_UNIXTIME()

C
На сайте с 26.12.2005
Offline
146
#2

Привести даты в секунды, выбрать рандом и вернуть в дату.

$d1 = "2011-12-31";

$d2 = "2015-12-31";

$d1 = strtotime($d1);

$d2 = strtotime($d2);

$d = rand($d1,$d2);

$d = date("d-m-Y", $d);

Лучший хостинг, которым пользовался за последние 15 лет! (https://beget.com/p107248)
Z0
На сайте с 03.09.2009
Offline
827
#3

https://stackoverflow.com/questions/11906572/mysql-insert-random-datetime-in-a-given-datetime-range

INSERT INTO `sometable` VALUES(

FROM_UNIXTIME(
UNIX_TIMESTAMP('2010-04-30 14:53:27') + FLOOR(0 + (RAND() * 63072000))
)
)

Если я верно понял 🍿

От 2010-04-30 14:53:27 до +2 лет. Там уже сами подставьте, что надо :)

В общем, там много способов показали, выбирайте любой :)

P.S. И да, поиск отменили? 🤪

[umka]
На сайте с 25.05.2008
Offline
456
#4

UPDATE table SET created=TIMESTAMP('2010-01-01 00:00:00')+INTERVAL (ROUND(RAND()*TIMESTAMPDIFF(SECOND,'2010-01-01 00:00:00','2015-01-01 00:00:00'))) SECOND

Лог в помощь!
C
На сайте с 26.12.2005
Offline
146
#5

или три рандома на день, месяц и год и собрать в дату

D
На сайте с 28.06.2008
Offline
1114
#6
'[umka:
;15450027']UPDATE table SET created=TIMESTAMP('2010-01-01 00:00:00')+INTERVAL (ROUND(RAND()*TIMESTAMPDIFF(SECOND,'2010-01-01 00:00:00','2015-01-01 00:00:00'))) SECOND

Самое простое решение, спасибо!!!

[Удален]
#7

А , если попробовать все наоборот сделать.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий