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

    Selezionare a seconda della differenza tra date

    Ciao! Ho bisogno di un aiutino con una query.
    Dovrei selezionare dal db MySql dei valori se il risultato del calcolo tra 2 date è maggiore di 59 (se sono passati almeno 2 mesi). Un dato è la data odierna e l' altro è il valore di t_staff_contracts.end_date. Non riesco proprio a capire quali funzioni devo utilizzare:
    codice:
    SELECT t_staff.id_staff, concat(t_staff.surname, ' ', t_staff.name) 
    FROM t_staff, t_staff_contracts 
    WHERE 
       PERIOD_ADD
       (
            DATE_FORMAT(NOW(), '%Y-%m-%d') 
            - 
            DATE_FORMAT(t_staff_contracts.end_date, '%Y-%m-%d')
       ) 
       > 59 
    ORDER BY surname ASC"
    Grazie 1000 ragazzi
    Ultima modifica di camionistaxcaso; 04-02-2016 a 11:49

  2. #2
    In pratica devo selezionare solo i dipendenti che stanno lavorando (quindi il valore è NULL) e quelli che non lavorano più da mesi

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    24
    Prova ad utilizzare la funzione DATE_DIFF , questa funzione nativa ti restituisce la differenza delle date.

    https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

  4. #4
    Grazie, scusa avevo risolto e la mail era rimasta immersa tra le altre mila
    Ho fatto cosi per tirare fuori tutti i dipendenti attivi o "licenziati" da meno di 60 giorni:
    codice:
    SELECT 
            t_staff.id_staff, concat(t_staff.matricula, ' ', t_staff.surname, ' ', t_staff.name) as staff_detail
            FROM t_staff, t_staff_contracts
            WHERE t_staff.id_staff = t_staff_contracts.id_staff 
            AND (
                 t_staff_contracts.termination_date = '0000-00-00'
                 OR t_staff_contracts.termination_date is NULL
                 OR t_staff_contracts.termination_date >= DATE_ADD(CURRENT_DATE(), INTERVAL -60 DAY)
                 
                )

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.