Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [SQL]Ricavare ore trascorse

    ciao ragazzi in un DB ho una tabella "segnalazioni" con un campo "Data_Ora_segnalazione" di tipo TIMESTAMP
    Bene voglio fare una cosa stupida ma che mi sta facendo impazzire...
    Voglio capire se tra la data attuale e quella nel DB sono passate 24 ore...
    Come posso fare?

    Ho usato
    codice:
    SELECT * , DATEDIFF( hh, now( ) , `Data_Ora_segnalazione` ) AS D
    FROM `segnalazioni`
    Ma non va... se tolgo hh funziona ma mi restituisce la differenza dei giorni non calcolando le ore...

  2. #2
    Hai una cosa magnifica come il timestamp e me la converti in query?
    Estrai la data dal database, la sottrai al timestamp attuale e se il risultato è inferiore a 84600 (mi sembra, se no fai 60*60*24) allora è inferiore alle 24 ore:
    Codice PHP:
    $differenza=time()-$timedatabase;
    if(
    $differenza<84600)echo 'Meno di 24 ore'
    Domani con calma vediamo se è fattibile da query. Su iPhone riesco a fare poco
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Originariamente inviato da portapipe
    Hai una cosa magnifica come il timestamp e me la converti in query?
    In realtà è bene relegare al database le manipolazioni sulle date usando le sue funzionalità

    Una possibile soluzione al problema, se quello che ti interessa e sapere se non passate 24 ore dalla data di segnalazione ( si => sono passate, no => non sono passate ), potrebbe essere:

    codice:
     
    SELECT [...] IF( DATE_ADD( Data_Ora_segnalazione, INTERVAL 1 DAY) > NOW(), 'no','si') AS scaduta
    Prova

    Ciao

  4. #4
    Ti ringrazio! Oggi proverò perchè effettivamente volevo proprio verificarlo attraverso la query perchè diciamo che mi sembrava più...Concettualmente corretto...

    Comunque valuterò anche la soluzione di "portapipe" nel caso non ci riesca perchè è molto veloce!

    Grazie mille ragazzi ci aggiorniamo!

  5. #5

    SELECT [...] IF( DATE_ADD( Data_Ora_segnalazione, INTERVAL 1 DAY) > NOW(), 'no','si') AS scaduta
    E' perfetta questa query! non ho dovuto cambiare nemmeno una virgola!!!!

    Devo studiarmi la funzione DATE_ADD a questo punto!

    Ciao!
    Grazie mille a tutti e due per l'aiuto!

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.