gpt4 book ai didi

sql - 从 to_char() 输出中删除空白填充

转载 作者:行者123 更新时间:2023-11-29 11:31:08 26 4
gpt4 key购买 nike

我从中生成一个 View :

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;

现在 table 是这样的

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 Template Pattern Modifier删除任何填充:

SELECT d::date AS day
, to_char(d, 'yyyy-mm-dd') AS day_text
, to_char(d, '<b>FM</b>Day') AS weekday
FROM generate_series('2013-03-01'::date
, '2013-03-07'::date
, interval '1 day') d;

同时演示 generate_series() for timestamps .少一个查询级别。
如果您需要 View 中的实际 date,请将其设为实际类型 date,不要转换为 text 并返回。
并且不要使用基本类型名称 date 作为列名。改为使用 day
我只会使用 text 作为文本。转换为 varchar 毫无意义。

关于sql - 从 to_char() 输出中删除空白填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22242202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com