2013-12-11 62 views
-5
SELECT convert(VARCHAR, WH.DATE, 103), 
    PN.partyname, 
    BT.birdname, 
    dt.totalweight, 
    dt.rateperkg, 
    dt.dcno, 
    mr.branch 
FROM K_RT_Dailyentryretail DT 
INNER JOIN K_RT_PartyName PN 
    ON pn.sno = dt.partyname 
INNER JOIN K_RT_WarehouseDetails WH 
    ON dt.branchdate = wh.sno 
INNER JOIN K_RT_BirdType BT 
    ON dt.birdtype = bt.sno 
INNER JOIN K_RT_MasterRetailStores MR 
    ON MR.sno = WH.branch 
WHERE MR.branch + ' - ' + convert(VARCHAR, WH.DATE, 103) = @date 
ORDER BY convert(VARCHAR, WH.DATE, 103) DESC 

这里按日期排序不起作用。我怎样才能解决这个问题?按降序排列不工作?

+1

你是什么意思?你能向我们展示一些样本输出吗? –

+1

你知道你正在订购转换日期吗?我只是检查它给今天11/12/2013所以这意味着你可以有11/12/2013其次是01/10/2012因为它是一个字符串:) –

+0

分支日期:Madhapur - 2013年8月12日,分支机构日期:Madhapur - 2013年3月12日,分公司日期:Nizampet - 2013年12月12日,分公司日期:Madhapur - 2013年12月12日 – Sambasiva

回答

4

尝试改变:

order by convert(varchar,WH.date,103) desc 

到:

order by WH.date desc 
1

,当你在一个日期排序,使用格式为 “103”,日期字符串看起来像这样转换为varchar字符串:

dd/mm/yyyy 

所以排序先按“dd”,再按“mm”,然后按“yyyy”排序。

可以显示在使用103格式的日期,但是当你通过做顺序,使用此:

order by WH.date desc