当前位置: 代码迷 >> Oracle管理 >> 关于对Oracel中时间输出形式为('yyyy-IW-Day')的排序有关问题
  详细解决方案

关于对Oracel中时间输出形式为('yyyy-IW-Day')的排序有关问题

热度:688   发布时间:2016-04-24 04:13:33.0
关于对Oracel中时间输出形式为('yyyy-IW-Day')的排序问题
     今天遇到要从oracle数据库中输出数据,时间格式输出形式为('yyyy-IW-Day'),其中系统默认的是对拼音进行排序,但是我想要是从“星期一”到“星期日”这样排序。也尝试了百度,但是感觉方法有点麻烦。想到了先用形式(“yyyy-IW-dd”)进行排序后,再得到('yyyy-IW-Day')的值,但是在数据库中输入sql语句却报 “[Err] ORA-00907: 缺失右括号”这个错误,所以想请问下大家怎么处理
------解决思路----------------------
引用:
   这个不行吧!select出来的是 TO_CHAR (CREATETIME, 'yyyy-IW-Day')这样的形式,而order by是CREATETIME。
 这样会报    : 不是 SELECTed 表达式这样的错误。还是感谢你耐心的回答,真的有点不好意思老

直接这样order by 语法上肯定是正确的,在sqlplus,pl/sql都没问题,你用的什么工具?
个别工具上确实存在类似问题,比如说某些报表工具
如果是报表的话,可以在select的时候多select一列,显示的时候不显示就是了
另外你的条件写得有点罗嗦
SELECT DISTINCT trunc(CREATETIME),TO_CHAR (CREATETIME, 'yyyy-IW-Day')AS SPARE
FROM DAYSTATEMENTCOLD
WHERE TO_CHAR (CREATETIME, 'yyyy-IW') = '2014-32'
ORDER BY  trunc(CREATETIME) ASC
  相关解决方案