2016-01-06 45 views
2

即時通訊工資表,其中即時通訊存儲與相應的月份和年份和付款日期的工資細節。我在我的ASP.net c#應用程序中的GridView中顯示這些數據。我想在第一頁顯示最新的數據。 下面我示例數據庫薪水:ORDER BY在MySQL和GridView中的年份和日期

+------------+-------+----------+------+----------+------+-------------+ 
| EmployeeID | Gross | TotalDed | Net | Month | Year | paymentdate | 
+------------+-------+----------+------+----------+------+-------------+ 
|  2066 | 2219 |  3750 | 1531 | January | 2016 | 30.01.2016 | 
|  2023 | 2218 |  1649 | 570 | January | 2016 | 30.01.2016 | 
|  2001 | 2219 |  3750 | 1531 | October | 2015 | 30.10.2015 | 
|  2023 | 2218 |  1649 | 570 | October | 2015 | 30.10.2015 | 
|  2034 | 2328 |  5728 | 3400 | October | 2015 | 30.10.2015 | 
|  2023 | 2218 |  1649 | 570 | November | 2015 | 30.11.2015 | 
|  2030 | 2219 |  1550 | 669 | November | 2015 | 30.11.2015 | 
|  2047 | 2218 |  1649 | 570 | November | 2015 | 30.11.2015 | 
|  2031 | 2219 |  8450 | 6231 | December | 2015 | 30.12.2015 | 
|  2057 | 2219 |  8450 | 6231 | December | 2015 | 30.12.2015 | 
|  2023 | 2218 |  1649 | 570 | December | 2015 | 30.12.2015 | 
+------------+-------+----------+------+----------+------+-------------+ 

我想此表與GridView的分頁顯示。

String sQuery = @"SELECT EmployeeID,GrossSalary,TotalDed,NetSalary,Month,Year,paymentdate 
            FROM salary "; 

       MySqlDataAdapter ada = new MySqlDataAdapter(sQuery, GlobalCS.objMyCon);       

       using (DataTable dt = new DataTable()) 
       { 
        ada.Fill(dt); 
        GridView1.DataSource = dt; 
        GridView1.DataBind(); 
       } 

但它會顯示最新的最後一頁。 如果我使用

SELECT EmployeeID,GrossSalary,TotalDed,NetSalary,Month,Year,paymentdate FROM salary order by Paymentdate

然後顯示Jan2016,2016年10月,11月到2016年,2016年十二月 但我想顯示爲jan2016,DEC 2015年,2015年11月的東西,2015年10月 我試過

SELECT EmployeeID,GrossSalary,TotalDed,NetSalary,Month,Year,paymentdate FROM salary order by month and year 

輸出是所有數據的混合。所以我怎麼能得到這個?

回答

0

如果您的Paymentdatestring數據類型,那麼order by PaymentdateLexicographical order中訂購您的結果。

在訂單之前將Paymentdate轉換爲date

SELECT 
    `EmployeeID`, 
    `GrossSalary`, 
    `TotalDed`, 
    `NetSalary`, 
    `Month`, 
    `Year`, 
    `paymentdate` 
FROM salary 
order by STR_TO_DATE(`paymentdate`,'%d.%m.%Y') DESC 

sql fiddle demo

注意: - 它是一種不好的做法,在date數據存儲在數據類型string代替date數據類型的