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

NewJey
На сайте с 21.11.2009
Offline
113
152

Добрый день.

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

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

Спасибо.

lutskboy
На сайте с 22.11.2013
Offline
170
#1

я так делаю

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

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

NewJey
На сайте с 21.11.2009
Offline
113
#2
lutskboy #:
4000000

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

M
На сайте с 17.09.2016
Offline
124
#3
NewJey #:

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

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

VG
На сайте с 30.04.2017
Offline
86
#4

можно лучше скриптиком, создай 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
На сайте с 21.11.2009
Offline
113
#5
VadimGen #:

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

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

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