2015-07-27 2 views

ответ

0

Вы искали? Я не думаю, что так

ORDER BY FIELD(MONTH,'January','February','March',...) 


SELECT leave_balance.balance, MonthName(leave_balance.date_added) AS month 
FROM leave_balance WHERE leave_balance.staff_id_staff = $iid 
GROUP BY month, leave_balance.leave_type_id_leave_type 
HAVING leave_balance.leave_type_id_leave_type = $leaveBalTypID 
ORDER BY FIELD(MONTH,'January','February','March',...,'December'); 

Дублировать из: MySql - order by monthname

Первый Google результат

DataTables, мой плохой, и до сих пор, первый результат;)

var monthNames = ["January", "February", "March", 
    "April", "May", "June", 
    "July", "August", "September", 
    "October", "November", "December"]; 
jQuery.fn.dataTableExt.oSort['month-name-asc'] = function (x, y) { 
    var xPos, yPos; 
    jQuery.each(monthNames, function (k, v) { 
     if (x == v) xPos = k; 
     if (y == v) yPos = k 
    }); 
    return ((xPos < yPos) ? -1 : ((xPos > yPos) ? 1 : 0)); 
}; 
jQuery.fn.dataTableExt.oSort['month-name-desc'] = function (x, y) { 
    var xPos, yPos; 
    jQuery.each(monthNames, function (k, v) { 
     if (x == v) xPos = k 
     if (y == v) yPos = k 
    }); 
    return ((xPos > yPos) ? -1 : ((xPos < yPos) ? 1 : 0)); 
}; 

http://drmsite.blogspot.com/2013/08/datatables-custom-sort-by-month-name.html

+0

OP не ссылается на какие-либо запросы, но хочет сортировать Datatables. – Daan

+0

ответ исправлен – Daimos

+0

Несмотря на то, что я цитировал в ответ, я бы изменил этот способ делать что-то сейчас и вместо этого использовал momentjs для сортировки месяцев, таким образом momentjs берет всю страсть от разбора языка. Не забудьте установить правильный 'moment.locale()' хотя! У вас есть JSFiddle с кодом, и я возьму косоглазие? – annoyingmouse

0

Обновление для данных 1.1 0+

var monthNames = ["January", "February", "March", 
    "April", "May", "June", 
    "July", "August", "September", 
    "October", "November", "December"]; 

    jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
     "month-name-asc": function (a, b) { 
      var xPos = 0, yPos = 0; 
      $.each(monthNames, function (k, v) { 
       if (a == v) xPos = k; 
       if (b == v) yPos = k; 
      }); 
      return ((xPos < yPos) ? -1 : ((xPos > yPos) ? 1 : 0)); 
     }, 

     "month-name-desc": function (a, b) { 
      var xPos = 0, yPos = 0; 
      $.each(monthNames, function (k, v) { 
       if (a == v) xPos = k; 
       if (b == v) yPos = k; 
      }); 
      return ((xPos > yPos) ? -1 : ((xPos < yPos) ? 1 : 0)); 
     } 
    }); 
Смежные вопросы