sql запрос на случаюную дату в диапазоне


NewJey
126

Добрый день.

Подскажите пожалуйста, надо всем товарам проставить случайную дату в таком виде 2020-11-30 09:40:40 и в диапазоне 1995-01-01 00:00:00 — 2020-30-11 00:00:00

Как это лучше сделать?

Спасибо.


lutskboy

я так делаю

UPDATE `dle_post` SET `date`=FROM_UNIXTIME(
    (UNIX_TIMESTAMP()-RAND()*4000000),
    "%Y-%m-%d %H:%i:%s"
);

где 4000000 надо подбирать


NewJey
lutskboy #:
4000000

Спасибо.  4000000 это что за число?


Mobiaaa
NewJey #:

Спасибо.  4000000 это что за число?

это количество секунд, разброс от текущей даты


VadimGen

можно лучше скриптиком, создай php файл с содержанием:

<?php 
$host = "localhost";
$user = "user_name";
$password = "password";
$db_name = "db_name";  
$query = mysql_connect($host,$user,$password,$db_name);
mysql_select_db($db_name,$query);

// это начало например в базе 100 записей, нужно изменить в 50 первых, поэтому ставим id = 1, если нужно зменить в промежутке 50 - 100, то ставим 50 и ниже 100
$x = 1;
// это конец, то есть сколько строк обработать, например 50 раз, то есть в данном случае скрипт оббежит 50 записей начиная с id = 1 по 50
while ($x < 50):
// Это формат времени в unix, первое это первая дата 1995-01-01 00:00:00 вторая это вторая дата 2020-30-11 00:00:00. Будет взят рандом в этом промежутке
$rand = rand(788918400, 1654905600);
//взятый рандом будет переведен в нормальное время
$date = date('Y-m-d h:i:s', $rand);

     mysql_query("UPDATE db_name SET date="$date" WHERE id = '$x'");

     $x++;      
endwhile;
?>

NewJey
VadimGen #:

можно лучше скриптиком, создай php файл с содержанием:

Спасибо за такой вариант. Попробую и его так же.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *