Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    formattare data in italiano

    Ciao a tutti
    mi potete aiutare? Sono agli inizi...
    ho un problema con questo script:

    SELECT *, DATE_FORMAT(DATE_SUB(gg, INTERVAL 13 DAY),'%d-%m-%Y') as data
    FROM tabella WHERE CURDATE() < gg - INTERVAL 13 DAY;

    Se ho capito bene quello che ho scritto mi dovrebbe formattare la data in formato dd-mm-YYYY italiano, invece pu eseguendo la query esattamente la rilascia comunque in formato inglese YYYY-mm-dd.

    Help!

    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    240
    gg è il nome del campo data????

    La query esatta è

    SELECT *, DATE_FORMAT(DATE_SUB(NOME_CAMPO_DATA, INTERVAL 13 DAY),'%d-%m-%Y') as data
    FROM tabella WHERE CURDATE() < date_sub (nome_campo_data, interval 13 DAY);

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    grazie

    grazie ma non funziona...
    la query non viene eseguita mi rilascia solo il primo record

    come posso fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    240

    la where?

    Credo che l'errore sia nella condizione di where !

    Quale dovrebbe essere?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    calcolo scadenza

    Il campo data è "gg"
    sto provando a fare in modo che se mancano 15 giorni alla data inserita nel campo "gg" la scrive su una pagina "mancano 13 giorni alla scadenza di..."

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    240
    la query sintatticamente è giusta ... credo che il problema sia o nei dati del db o concettuale:

    SELECT *, DATE_FORMAT(DATE_SUB(gg, INTERVAL 13 DAY),'%d-%m-%Y') as data
    FROM tabella WHERE CURDATE() < date_sub (gg, interval 13 DAY);

    vuol dire

    dammi tutte le colonne di tabella più gg meno 13 giorni
    dove la data corrente è minore di gg meno 13 giorni

    è questo che vuoi?


    In alternativa se hai MySQL 4.1 o superiore puoi usare DATEDIFF(now(),gg) che restituisce il numero di giorni tra oggi e gg.

  7. #7
    il problema e' nel contenuto dei campi.

    Se si presenta una condizione chi legge, per default, suppone che i dati siano congruenti alla funzione. Ora pare di capire che il campo gg contenga il valore giorno. Nel caso sarebbe un numero e non una data.

    Meglio se presenti il create table di questa tabella.

    show create table tabella.....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    rientro ora

    ecco lo script

    -- phpMyAdmin SQL Dump
    -- version 2.9.1.1
    -- http://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Generato il: 17 Dic, 2007 at 01:56 PM
    -- Versione MySQL: 5.0.27
    -- Versione PHP: 5.2.0
    --
    -- Database: `testmp`
    --

    -- --------------------------------------------------------

    --
    -- Struttura della tabella `asc_eur`
    --

    CREATE TABLE `asc_eur` (
    `id` int(10) NOT NULL auto_increment,
    `palazzo` varchar(255) NOT NULL default '',
    `indirizzo` varchar(255) NOT NULL default '',
    `carico` varchar(255) NOT NULL default '',
    `contratto` varchar(255) NOT NULL default '',
    `scheda` varchar(255) NOT NULL default '',
    `utilizzatori` varchar(255) NOT NULL default '',
    `manutenzione` varchar(255) NOT NULL default '',
    `marca` varchar(255) NOT NULL default '',
    `matricola` varchar(255) NOT NULL default '',
    `numero` varchar(255) NOT NULL default '',
    `ente` varchar(255) NOT NULL default '',
    `mailente` varchar(100) default NULL,
    `mailrno` varchar(100) default NULL,
    `mailditta` varchar(100) default NULL,
    `gg` date NOT NULL,
    `cert` varchar(255) NOT NULL default '',
    PRIMARY KEY (`id`),
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;

    la chiamata al db in pratica serve ad avvertire il responsabile di servizio che una data cosa scade di lì a 15 giorni, quindi lui si attiverà per rinnovarla.

    'gg' è campo data (data di scadenza) io già faccio un DATE_DIFF per sapere quanti giorni mancano alla scadenza sull lista a video, ma con questo vorrei implementare un invio mail con cronjob.
    Ieri lo script che ho inviato a piero.mac funzionava ma non formattava la data oggi su un'altra macchina non fa la query.
    Credo che probabilmente sia a causa della versione Mysql me lo confermate?

    grazie

  9. #9

    Re: rientro ora

    Originariamente inviato da linno

    la chiamata al db in pratica serve ad avvertire il responsabile di servizio che una data cosa scade di lì a 15 giorni, quindi lui si attiverà per rinnovarla.

    'gg' è campo data (data di scadenza) io già faccio un DATE_DIFF per sapere quanti giorni mancano alla scadenza sull lista a video, ma con questo vorrei implementare un invio mail con cronjob.
    codice:
    SELECT *, DATE_FORMAT(gg, '%d-%m-%Y') as data_scadenza,
    to_days(gg) - to_days(curdate()) as quanti_giorni
    FROM tabella 
    WHERE CURDATE() >= gg - INTERVAL 15 DAY;
    funziona anche con versioni piu' datate

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    Grazie!!!!

    Funziona!
    ho tolto <= e inserito = e, con valore 5 DAY mi rilascia la date del 22-12-2007, ergo giusto iè!!

    grazie a tutti dell'aiuto!!!!

    PS
    sono proprio uno zappone....
    devo studiare di più...

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.