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

前端之家收集整理的这篇文章主要介绍了sql – 从to_char()输出中删除空白填充前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从这里生成一个视图:
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没有意义.

猜你在找的MsSQL相关文章