首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本数据类型与字符串的比较

文本数据类型与字符串的比较
EN

Stack Overflow用户
提问于 2020-10-26 04:20:49
回答 2查看 28关注 0票数 0

我正在尝试比较要在条件中使用的“text”类型的一些字符。但是,它们不匹配,也不显示为真。

这是我正在使用的postgresql数据库...例如:

代码语言:javascript
复制
active_date timestamp := '2020-10-4';
day_of_week text := to_char(active_date, 'day');

接受输入的任何日期,并将其存储到day_of_week中,在本例中,选择day_of_week将在结果中返回'sunday‘。

但是,当尝试在某个条件下使用它时,

代码语言:javascript
复制
(case
    when day_of_week = 'sunday' then 'True' else 'False' end
) as "true or false",

..。总是返回'false‘。

我猜这是由数据类型引起的问题?需要采取什么措施才能使案例评估为真?我试过cast('sunday' as text)

还是什么都没有

EN

回答 2

Stack Overflow用户

发布于 2020-10-26 05:13:39

默认情况下,to_char()会将值与空格“对齐”。如果您不想这样做,可以使用FM modifier

代码语言:javascript
复制
to_char(active_date, 'FMday'))

FM禁止使用前导零和尾随空格,否则将添加这些空格以使模式的输出为固定宽度

通常,我建议不要使用本地化的日期名称,因为如果从具有不同语言环境的SQL客户机运行SQL,这很容易破坏您的代码。如果您想使其更健壮,可以使用extract(dow from your_date_value)和Sunday =0和Saturday = 6。就我个人而言,我更喜欢使用isodow可以提取的ISO工作日,其中Monday =1和Sunday =7

票数 2
EN

Stack Overflow用户

发布于 2020-10-26 04:26:55

解决方案是:

代码语言:javascript
复制
rtrim(to_char(active_date, 'day'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64528366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档