方法为:
select to_char(sysdate,'day') dayth from dual
星期三
可以设置语言:
select to_char(sysdate,'day','NLS_DATE_LANGUAGE=AMERICAN') dayth from dual
wednesday
需要说明:
查询出来的内容是有空格的,需注意,下面语句
select (case to_char(sysdate-1,'day','NLS_DATE_LANGUAGE=AMERICAN') when 'monday' then 1 when 'tuesday' then 2 when 'wednesday' then 3 when 'thursday' then 4 when 'friday' then 5 when 'saturday' then 6 when 'sunday' then 7 else 0 end ) dayth from dual
运行发现,只有wednesday返回3,其他都返回0
原因是他的返回值右面补了空格,也就是说他返回的不是“tuesday”,而是“tuesday ”
所以在应用时一定要加trim
select (case trim(to_char(sysdate-1,'day','NLS_DATE_LANGUAGE=AMERICAN')) when 'monday' then 1 when 'tuesday' then 2 when 'wednesday' then 3 when 'thursday' then 4 when 'friday' then 5 when 'saturday' then 6 when 'sunday' then 7 else 0 end ) dayth from dual
就OK了。。
不过写上面的语句只是一个例子,实际只需要这个就可以了
select to_char(sysdate,'d')-1 dayth from dual