我有这段代码来选择2012年4月23日的日期。它应该返回字母'A',而是返回字母'G'。
SELECT
case to_char(
(select pp.datestart
from adempiere.pp_order pp
where pp.datestart = '2012-04-23'
limit 1)
, 'day')
when 'monday'
then 'A'
when 'tuesday'
then 'B'
when 'wednesday'
then 'C'
when 'thursday'
then 'D'
when 'friday'
then 'E'
when 'saturday'
then 'F'
else 'G'
end as test
我已经使用
选择了这一天to_char(
(select pp.datestart
from adempiere.pp_order pp
where pp.datestart = '2012-04-23'
limit 1)
, 'day') as Day
并将当天显示为“星期一”
我的个案陈述有什么问题吗?
答案 0 :(得分:1)
我会使用EXTRACT来避免语言设置问题:
SELECT
CASE EXTRACT(DOW FROM pp.datestart)
when 1 then 'A'
when 2 then 'B'
when 3 then 'C'
when 4 then 'D'
when 5 then 'E'
when 6 then 'F'
else 'G'
END as test
FROM
adempiere.pp_order pp
WHERE
pp.datestart = '2012-04-23'
LIMIT 1;
答案 1 :(得分:0)
to_char(date, 'day')
将字符串空白填充返回到9个字符:reference。