设为首页 - 加入收藏 华夏网 (http://www.hxwgxz.com)- 云主机,资讯,互联网,人工智能,云计算,大数据,区块链,VR,站长网!
热搜: 2019 google 中国 2020
当前位置: 主页 > 编程 > 正文

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

发布时间:2021-02-26 00:21 所属栏目:[编程] 来源:网络整理
导读:我从这里生成一个视图: 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没有意义.

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章