How to update/Insert random dates in SQL within a specified Date Range

后端 未结 2 785
情歌与酒
情歌与酒 2021-01-25 23:12

Please forgive me. I am an absolute newbie and I need help with this table in phpmyadmin

My Table has the following columns:

Primary_ID, Begin_Date, End_         


        
相关标签:
2条回答
  • 2021-01-25 23:35

    I'd start with something like this. A bunch of these can be combined, but I split it up so you can see what I'm doing.

    To get random numbers, you can use rand(). Get one for the date, hour, minute, and second

    $randomDate = rand(1,31);
    $randomHour = rand(1,24);
    $randomMinute = rand(0,59);
    $randomSecond = rand(0,59);
    

    You will want leading zeros (03 instead of 3) so you can use str_pad to add them, if required

    $randomDate = str_pad($randomDate, 2, '0',STR_PAD_LEFT);
    //The '2' is how many characters you want total
    //The '0' is what will be added to the left if the value is short a character
    

    Do the same with all your other random values. Just because I like neat queries, you should make up your final update strings next.

    $newDate = '2008-09-'.$randomDate;
    $newTime = $randomHour.':'.$randomMinute.':'.$randomSecond;
    

    Now I don't know how you're determining which rows you want to update, so I will leave that up to you. For an example, I will show you a query if you wanted to do this with Primary_id 3:

    $x = mysql_query("UPDATE yourTable SET Begin_Date=\"$newDate\", Timestamp=\"$newTime\" WHERE Primary_id = 3");
    
    0 讨论(0)
  • 2021-01-25 23:53

    something like:

    insert into myTable (begin_date) values date_add('2008-09-01', INTERVAL RAND()*30 DAY)

    that should create a new row with a random begin_date

    update myTable set Timestamp = date_add(begin_date, INTERVAL RAND()*1440 MINUTE)

    then that one should set the timestamp to a random minute of that day.

    0 讨论(0)
提交回复
热议问题