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

    Come fare una query di periodo???

    Sto realizzando un programma in PHP per la gestione delle presenze di un'azienda...

    Ho creato la seguente tabella per la gestione dei permessi....

    codice:
    CREATE TABLE IF NOT EXISTS `permessi` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `nome` varchar(255) collate utf8_unicode_ci NOT NULL default '',
      `data_da` date NOT NULL default '0000-00-00',
      `ora_da` time NOT NULL default '00:00:00',
      `data_a` date NOT NULL default '0000-00-00',
      `ora_a` time NOT NULL default '00:00:00',
      `descrizione` varchar(255) collate utf8_unicode_ci default NULL,
      `malattia` tinyint(1) NOT NULL default '0',
      PRIMARY KEY  (`id`),
      KEY `badge` (`nome`)
    ) ENGINE=MyISAM
    In questo modo inserisco un permesso inserendo la data e l'ora di inizio e fine del permesso che prende.

    Ora il mio problema è quando faccio le ricerche...ad esempio....

    Immaginiamo che Pippo si prende un permesso che va dal 10/11/2008 al 15/11/2008...

    Ora immaginiamo che voglio sapere tutte le persone che hanno preso un permesso tra il 7/11/2008 e il 13/11/2008 .....
    in questo caso deve comparire anche Pippo perchè dal 10 al 13 è di permesso....

    le ho tentate tutte, ma nn riesco proprio a creare la query...
    qualcuno sa darmi una dritta???

  2. #2
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    Re: Come fare una query di periodo???

    prova a postare la tua query, cosi vediamo una base di partenza.

    comunque, io per cercare "eventi" compresi tra due date, utilizzo FROM_UNIXTIME..
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  3. #3

    Re: Re: Come fare una query di periodo???

    Originariamente inviato da blekm
    prova a postare la tua query, cosi vediamo una base di partenza.

    comunque, io per cercare "eventi" compresi tra due date, utilizzo FROM_UNIXTIME..
    attualmente la mia quesy è questa...

    codice:
    SELECT * FROM permessi WHERE
    ( data_da >= '2008-11-07' AND data_a <='2008-11-13' AND data_da >= '2008-11-07' AND data_a <='2008-11-13' ) OR
    ( data_da <= '2008-11-07' AND data_a <='2008-11-13' AND data_da >= '2008-11-07' AND data_a <='2008-11-13' ) OR
    ( data_da <= '2008-11-07' AND data_a <='2008-11-13' AND data_da >= '2008-11-07' AND data_a >='2008-11-13' )
    ORDER BY data_da
    Ho pensato ad usare la funzione BETWEEN ma ancora nn riesco a pensare alla soluzione!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    7
    da inesperto (o meglio da ex utente access che è peggio ) potresti usare between

    tipo:
    select
    from
    where data_a between '2006-01-01' AND '2006-12-31'

  5. #5
    Originariamente inviato da grahac
    da inesperto (o meglio da ex utente access che è peggio ) potresti usare between

    tipo:
    select
    from
    where data_a between '2006-01-01' AND '2006-12-31'
    ci avevo pensato anche io ma la cosa è più complicata perchè c'è da considerare che anche nel filtro ho un periodo...cioè... la tua queri non funzionerebbe nel caso in cui se Pippo è in ferie dal 10/11/2008 al 13/11/2008....se faccio una ricerca dal 12/11/2008 al 20/11/2008 Pippo non mi compare perchè la data_da non risulta trovarsi tra le date selezionate...ora che ci penso però dovrei provare ad usare la mia stessa query adattandola al between.....in pratica uscirebbe una query enorme VVoVe: ora provo a scriverla!!!! :master:

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.