从to_char()输出中删除空白录音



i从此产生视图:

create or replace view datetoday as
select to_char(dt, 'yyyy-mm-dd') as date, to_char(dt, 'Day') as weekday from 
(select ('2013-03-01'::date + i) dt from generate_series(0,'2013-03-03'::date - 2013-03-01'::date) 
as t(i)) as t;

它为text类型提供了工作日信息。然后我使用:

select date::date, weekday::varchar from datetoday;

现在桌子就像

2013-3-1 Friday
2013-3-2 Saturday

如果我想选择条目:

select * from datetoday where weekday='Friday'

将其从text更改为character varying

看来固定的长度不是根据每个单词长度的。
例如,"星期五"应该有6个长度和周三的长度9.
我该如何更改此操作,让长度是单词的实际长度?

因为稍后我将将此表的weekday列与另一个表的weekday列进行比较。喜欢

where a.weekday=b.weekday

另一个工作日来自JSP的用户,因此长度有所不同。
现在的长度已固定,比较失败。

模式 'Day'在右侧空白,使整个9个字符长。使用 FM 模板模式修饰符删除任何填充:

SELECT d::date AS day
     , to_char(d, 'yyyy-mm-dd') AS day_text
     , to_char(d, 'FMDay')      AS weekday
FROM generate_series('2013-03-01'::date
                   , '2013-03-07'::date
                   , interval '1 day') d;

还为时间戳演示generate_series()。一个较少的查询级别。
如果在视图中需要实际的date,请将其作为实际类型date,请勿转换为text,然后将其返回。
并且不要将基本类型名称date用作列名。改用day
我只会使用text进行文本。转换为varchar的没有意义。

相关内容

  • 没有找到相关文章

最新更新