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

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

发布时间:2021-02-26 09:27:06 所属栏目:编程 来源:网络整理
导读:我从这里天生一个视图: 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没故意义.

(编辑:湖南网)

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

    热点阅读