2017-09-20 4 views

Répondre

0

vous devez utiliser l'expression à la clause de l'ordre, quelque chose comme:

order by abs(Original_Date - Output_Date) asc 

donc cette façon, vous obtiendrez la distance de la date originale (06.09.2017) à toute autre date, et don ne pas oublier de prendre des valeurs absolues (abs)

0

J'ai utilisé l'instruction Case dans ORDER BY pour y parvenir.

ORDER BY CASE when (DATE(created_on) = DATE(in_selected_date)) THEN 1 
    when (DATE(created_on) < DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = -1) THEN 2 
    when (DATE(created_on) > DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = 1) THEN 3 
    when (DATE(created_on) < DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = -2) THEN 4 
    when (DATE(created_on) > DATE(in_selected_date) AND DATEDIFF(DATE(created_on), DATE(in_selected_date)) = 2) THEN 5 
    ELSE 1 END ASC