2015-10-20 2 views
-2

У меня есть таблица, которая содержит одну строку, содержащую дату, среди прочего, для каждого клиента. Стол должен иметь пустую строку (за исключением идентификатора автоинкремента и даты) для каждого дня, проецирующего 1 год в будущее.Как вставить строки, содержащие последовательные даты в базу данных mysql

Я пробовал PHP и sql, но у меня возникли проблемы с увеличением даты (CHAR 8 "YYYYMMDD"). У меня тоже есть Googled. Надеюсь, кто-то мне поможет.

+0

Зачем это * уже содержать строку? Разве вы не добавляете строку, если знаете, какие-то * данные *, чтобы вставить в нее? – Deduplicator

+0

Вам не кажется, что вы написали .. плохой дизайн? Почему все должно иметь пустую строку? Почему вы вставляете даты в последовательности? Какая проблема не позволяет решить эту обычную сортировку SQL? Какую проблему вы решаете? Почему вы вставляете дату в символ «char», который не позволяет вам ** работать ** на ваших данных, вместо соответствующего типа поля, который позволяет вам работать с ним? У вас просто слишком много ошибок, и это приводит к выводу, что ваших знаний SQL недостаточно. Как насчет того, чтобы представить свою актуальную проблему, и мы с этим помогаем? –

+0

Вы не можете использовать тип данных даты или времени, а не символ? Вы могли бы легко выполнять всевозможные операции с датой. –

ответ

0

бизнес логики вопросов в сторону ...

Мы можем договориться о нескольких вещах:

  1. Есть, как правило, 365 дней в году.
  2. Есть 86,400 секунд в день.
  3. php timestamp() работает в считанные секунды.

Тогда это должно помочь:

$i = 0; 
$timeObjectForNow = new DateTime(timestamp()); // Current time 
$todayTimeStamp  = strtotime($timeObjectForNow->format('Y').'-'.$timeObjectForNow->format('n').'-'.$timeObjectForNow->format('d')); 


while($i < 365) 
{ 
    $secondsSinceToday = $i * 86400; 

    $projectedTimeStamp = $todayTimeStamp + $secondsSinceToday; 

    $formatedDate = date('Your formating here', $projectedTimeStamp); 

    //Insert $formatedDate into your date column for the respective projected day. 

} 

Я не тестировал выше, его просто, чтобы дать представление о том, один из способов справиться с этим.

Смежные вопросы