Get current user, change users post status to published

The database holds several rows for each attribute of a post. All except on row should have status inherit. So I just hope the post_id is correct.

Anyway, yes you are correct to assume that it is similar:

$query = array(
  'ID' => $post_id,
  'post_status' => 'publish',
);
wp_update_post( $query, true );

Oh and

add_action('publish_post'...

adds the check when the post is being published (so no need to check once a day).