【问题标题】:order by descending date is not working? [closed]按日期降序排列不起作用? [关闭]
【发布时间】:2013-12-29 14:38:49
【问题描述】:
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

这里..按日期排序不起作用。我该如何解决这个问题?

【问题讨论】:

  • 什么意思?你能给我们展示一些示例输出吗?
  • 您知道您要订购转换后的日期吗?我刚刚检查了它今天给出的 11/12/2013 所以这意味着你可以有 11/12/2013 然后是 01/10/2012 因为它是一个字符串:)
  • 分店日期:Madhapur - 08/12/2013,分店日期:Madhapur - 03/12/2013,分店日期:Nizampet - 08/12/2013,分店日期:Madhapur - 09/12/ 2013
  • 输出如上按日期顺序排列的顺序。

标签: sql-server tsql sql-order-by


【解决方案1】:

尝试改变:

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

到:

order by WH.date desc

【讨论】:

    【解决方案2】:

    当您对日期进行排序时,使用格式“103”转换为 varchar 字符串,日期字符串如下所示:

    dd/mm/yyyy
    

    因此,排序将首先按“dd”排序,然后是“mm”,然后是“yyyy”。

    您可以使用 103 的格式显示日期,但是当您进行排序时,请使用:

    order by WH.date desc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多