我有一张包含以下详细信息的表格
对于查看数据库详细信息,我尝试使用查询
SELECT * FROM itinv_log WHERE catname=:catname AND itemname=:itemname ORDER BY setdate DESC
按以下顺序显示结果:
02-02-2016 stock_in added
03-02-2016 stock_in added
04-02-2016 stock_in added
25-01-2016 stock_in added
26-01-2016 stock_in added
我希望结果应按以下顺序排列:
04-02-2016 stock_in added
03-02-2016 stock_in added
02-02-2016 stock_in added
26-01-2016 stock_in added
25-01-2016 stock_in added
如果有人知道解决方案。请帮我解决这个问题。
答案 0 :(得分:0)
使用STR_TO_DATE
功能按实际日期值而不是数值进行排序。
SELECT *
FROM itinv_log
WHERE catname=:catname
AND itemname=:itemname
ORDER BY STR_TO_DATE(setdate , '%d/%m/%Y') DESC
答案 1 :(得分:0)
您可CAST
将值date
SELECT * FROM itinv_log WHERE catname=:catname
AND itemname=:itemname ORDER BY CAST(setdate AS DATE) DESC
答案 2 :(得分:0)
看起来您的setdate
列是字符串类型。
更好的情况 - 将您的setdate
转换为something more suitable for date,但如果您不能这样做,也许您可以使用以下字段:
SELECT *, STR_TO_DATE(setdate, '%m/%d/%Y') as formattedDate
FROM itinv_log
WHERE catname=:catname AND itemname=:itemname ORDER BY formattedDate DESC