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

    #1242 - Subquery returns more than 1 row

    In primis ciao a tutti ragazzi,

    sto creando un programma in php/mysqlche esclude automaticamente le ore e le mezz'ore di tempo che intercorrono tra un appuntamento e l'altro in un centro estetico per un trattamento.

    Fino ad ora,con un pò di fatica,tutto bene. Adesso però ho bisogno di sapere per più record presenti lla tabella appuntamenti quanto passa tra un ora e l'altra (ES: inizio: 10:00:00 fine: 12:00:00 - 2 ore quindi 2).

    Adesso però insorge un problema.

    Tramite questa query:

    select DATE_FORMAT(fine,'%H:%i') - (select DATE_FORMAT(inizio,'%H:%i') from appuntamento) AS calcolo from appuntamento where data = '2010-12-18'

    sono riuscito a farmi restituire la differenza tra l'inizio e la fine del trattamento(nel caso sia ad esempio le 10:00:00 per il primo e le 12:00:00 per le altre mi restituisce 2). Tuttavia se i record sono più di uno mi restituisce il seguente errore:

    #1242 - Subquery returns more than 1 row

    come faccio dunque a farmi restuire due colonne con le rispettive differenze di orario?. ES: 10:00 - 12:00 : 2 altro record 14:00 17:00 : 3.

    N.B: ho cercato una funzione per fare automaticamente calcoli con gli orari ma non ne ho trovati sulla guida di mysql. Ne esistono o no?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    http://dev.mysql.com/doc/refman/5.5/...functions.html

    select fine,inizio,timediff(fine,inizio) as diff from ....

  3. #3
    eccezzionale..credo sia proprio quello che mi serviva grazie. Come al solito non sto mai attento a ciò che leggo nelle guide ):

  4. #4
    ultima cosa,se non è troppo abusare della tua pazienza.

    La funzione mi restituisce l'orario di differenza nel formato time. E qui ci siamo .

    Volevo sapere,se non è troppo macchinoso,se è possibile avere come responso il numero in termini interi dell'orario di differenza(es: 2).

  5. #5
    mi autorispondo dicendo che con Time_format si può far tutto.

    Ai posteri questa è la funzione per ottenere inizio e fine e la relativa differenza:


    select DATE_FORMAT(fine,'%H:%i') AS fine,Date_FORMAT(inizio,'%H%:%i') AS inizio,TIME_FORMAT(TIMEDIFF(fine,inizio),'%k') AS differenza from appuntamento where data = "2010-12-18"

    Grazie mille 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.