Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2019
    Messaggi
    23

    Query MySQL sull'orario

    Ciao a tutti,
    su una tabella mysql ho due colonne che vengono valorizzate con il CURRENT_TIMESTAMP e ho necessità di effettuare una select che mi faccia il conteggio di quante ore sono passate tra i due valori indicati. Qualcuno mi sa dire come fare?
    Di seguito vi riporto come è fatta la tabella

    codice:
    CREATE TABLE `time_accettazione` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `utente` varchar(50) NOT NULL,  `tipo_attivita` int(10) NOT NULL DEFAULT '1',  `data_e` datetime NOT NULL,  `ok_u` tinyint(5) DEFAULT NULL,  `data_u` datetime DEFAULT NULL,  `note` text,  PRIMARY KEY (`id`),) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
    


    Grazie mille in anticipo
    Ultima modifica di iw8ffg; 15-06-2022 a 20:06

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    954
    Quote Originariamente inviata da iw8ffg Visualizza il messaggio
    Ciao a tutti,
    su una tabella mysql ho due colonne che vengono valorizzate con il CURRENT_TIMESTAMP e ho necessità di effettuare una select che mi faccia il conteggio di quante ore sono passate tra i due valori indicati. Qualcuno mi sa dire come fare?
    Di seguito vi riporto come è fatta la tabella

    codice:
    CREATE TABLE `time_accettazione` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `utente` varchar(50) NOT NULL,  `tipo_attivita` int(10) NOT NULL DEFAULT '1',  `data_e` datetime NOT NULL,  `ok_u` tinyint(5) DEFAULT NULL,  `data_u` datetime DEFAULT NULL,  `note` text,  PRIMARY KEY (`id`),) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
    


    Grazie mille in anticipo
    Ciao,
    prova in questo modo:

    SELECT TIMESTAMPDIFF(HOUR, data_e, data_u) as `diff` FROM time_accettazione
    WHERE id = tuoid

    Ovviamente non avendo dettagliato qual è la data più recente, sentiti libero di invertire id due parametri data_e e data_u

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2019
    Messaggi
    23
    Grazie mille mi sei stato utilissimo

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    954
    Quote Originariamente inviata da iw8ffg Visualizza il messaggio
    Grazie mille mi sei stato utilissimo
    Di niente, buon lavoro

  5. #5
    Quote Originariamente inviata da iw8ffg Visualizza il messaggio
    Ciao a tutti,
    Di seguito vi riporto come è fatta la tabella

    codice:
    CREATE TABLE `time_accettazione` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `utente` varchar(50) NOT NULL,  `tipo_attivita` int(10) NOT NULL DEFAULT '1',  `data_e` datetime NOT NULL,  `ok_u` tinyint(5) DEFAULT NULL,  `data_u` datetime DEFAULT NULL,  `note` text,  PRIMARY KEY (`id`),) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
    


    Grazie mille in anticipo
    Se posso permettermi, nei campi di tipo INT che rappresentano un legame tra tabelle o un indice primario autoincrement, usa sempre "unsigned", perchè è praticamente impossibile avere valori negativi per gli indici....in questo modo hai un range più ampio da sfruttare, che se lasci "signed" che è il default, ti dimezza i possibili valori.
    Questo magari su campi INT non fa molta differenza, ma se per caso devi usare TINYINT , passi da soli 127 valori possibili (positivi, ovviamente) a 256, usando comunque un campo che occupa le stesse poche "risorse"

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 © 2024 vBulletin Solutions, Inc. All rights reserved.