Visualizzazione dei risultati da 1 a 6 su 6

Discussione: creazione data

  1. #1
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837

    creazione data

    Buongiorno a tutti, avrei un problema. In pratica a partire da una data iniziale dovrei ottenere una data finile utilizzando una select contenente dei mesi.
    in pratica nel mio database ho 3 campi:
    1)data_iniziale DATETIME
    2)data_finale DATETIME
    3)mesi (TIPO CAMPO DA VEDERE)

    Per esempio:
    data iniziale 2008-09-27 13:59:59 vorrei ricavare la data finale dati i tre mesi successivi.

    Spero di essermi spiegato

    Grazie a tutti.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Spero di aver capito.

    select '2008-09-27 13:59:59' + interval 3 month

  3. #3
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    Ti ringrazio per la risposta.
    In pratica sia la data iniziale che quella finale saranno inserite nel attraverso una query del tipo:

    $data_iniziale = date("Y-m-d H:i:s");
    $data_finale = $data_iniziale + 3 mesi;

    $query = "INSERT INTO database ('data_inziale','data_finale) VALUES ('$data_inziale', '$data_finale')";

    ti chiedo un'altra cosa, è possibile eseguire una query di tipo UPDATE in una certa data.
    ovviamente senza usare crontab.

    Grazie mille.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da mariox
    Ti ringrazio per la risposta.
    In pratica sia la data iniziale che quella finale saranno inserite nel attraverso una query del tipo:

    $data_iniziale = date("Y-m-d H:i:s");
    $data_finale = $data_iniziale + 3 mesi;

    $query = "INSERT INTO database ('data_inziale','data_finale) VALUES ('$data_inziale', '$data_finale')";

    ti chiedo un'altra cosa, è possibile eseguire una query di tipo UPDATE in una certa data.
    ovviamente senza usare crontab.

    Grazie mille.
    Secondo me è inutile inserire per tutti i record una data incrementata di 3 mesi.
    Per la data corrente non hai bisogno di passarla tramite php. Basta che usi nella query now(). Le date/ore incrementare di 3 mesi le ottieni in un attimo con una select.

    select data_iniziale,data_iniziale + interval 3 month as data_fine from tabella

    Per la seconda domanda non saprei proprio.

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    ti ringrazio di nuovo.
    In pratica 3 mesi è un valore di esempio.

    attraverso un campo select html, ci sono diverse opzioni disponibili: 1,2,3,4,5,6,7 mesi.

    Per questo ho bisogno di inserire all'interno della tabella i valori relativi alla data_inziale, data_finale, durata_mesi.

    Poi tramite una query (speriamo si possa fare in modo automatico) faccio un controllo, se la data attuale è uguale alla data_finale, aggiorno lo stato della riga da 1 a 0 in questo modo non rendo visibile la riga della tabella interessata.
    grazie.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ok, allora nella tabella inserisci solo la data_iniziale e un campo numerico in cui metti il valore passato dal menù a tendina.

    A questo punto la select sarebbe

    select data_iniziale, data_iniziale + interval campo_numerico month as data_finale from tabella

    mentre per la query di aggiornamento

    update tabella set campo_stato = 0 where curdate() > data_iniziale + interval mesi month

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.