加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2021-02-26 00:21:44 所属栏目:编程 来源:网络整理
导读:我从这里生成一个视图: create or replace view datetoday asselect 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))

我从这里生成一个视图:

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;

它为工作日信息提供了文本类型.然后我用:

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

现在桌子就像

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

如果我想选择条目:

select * from datetoday where weekday='Friday'

将其从文本更改为字符.

似乎长度固定不是根据每个字长.
例如,“星期五”的长度应为6,星期三的长度应为9.
我怎样才能改变这个,让长度成为单词的实际长度?

因为稍后我会将此表的工作日列与另一个表的工作日列进行比较.喜欢

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,'FMDay')      AS weekday
FROM generate_series('2013-03-01'::date,'2013-03-07'::date,interval '1 day') d;

还演示了generate_series() for timestamps.少了一个查询级别.如果您需要视图中的实际日期,请将其设为实际类型日期,不要转换为文本并返回.并且不要使用基本类型名称日期作为列名称.用日来代替.我只会使用文本文本.转换为varchar没有意义.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读