加入收藏 | 设为首页 | 会员中心 | 我要投稿 上饶站长网 (https://www.0793zz.com.cn/)- 数据库平台、视觉智能、智能搜索、决策智能、迁移!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何在单词中显示数字值

发布时间:2021-01-23 12:46:33 所属栏目:MsSql教程 来源:网络整理
导读:问:在Words中显示数字值,输出应如下所示 SAL In_Words--------- -----------------------------------------------------800 eight hundred1600 one thousand six hundred1250 one thousand two hundred fifty 并且,我仍然没有弄明白,这个查询是如何解决上述

问:在Words中显示数字值,输出应如下所示

SAL        In_Words
--------- -----------------------------------------------------
800       eight hundred
1600      one thousand six hundred
1250      one thousand two hundred fifty

并且,我仍然没有弄明白,这个查询是如何解决上述输出的.

select sal,to_char(to_date(sal,'j'),'Jsp') in_words from emp

to_date在这做什么?有人对这个查询有任何想法吗?

解决方法

那么查询如何工作?那么这就是原因:
select to_char(to_date(:number,'jsp') from dual;

如果你查看查询的最内部部分to_date(:number,’j’),’j’或J是朱利安日期(公元前4713年1月1日),基本上这个日期用于天文研究.

所以to_date(:number,’j’)它取数字所代表的数字并假装它是朱利安日期,转换成日期.

如果您将3传递给数字,那么它将日期转换为公元前4713年1月3日,这意味着将3添加到Julian日期.

select to_char(to_date(3,'jsp') from dual;

现在to_char(to_date(3,’jsp’),jsp = Now;取该日期(to_date(3,’j’))并拼写它代表的朱利安数字,输出为:

TO_CH
-----
three

使用Julian日期时有一个限制,它的范围是1到5373484.这就是为什么如果你把值放在5373484之后,它会抛出一个错误,如下所示:

ORA-01854: julian date must be between 1 and 5373484

大家好,这个话题很有意思.我记得当我在2005年学习Oracle时,其中一位教师要求我编写一个PL / SQL代码来转换单词中的数字,这是一个完整的两页代码.

这里有一些参考可以帮助我们理解朱利安日,这就是为什么我们在这个操作中使用字母’j’或’J’.

首先,有一个网站有关于“如何使用Oracle SQL查询将数字转换为单词”的示例和说明:

http://viralpatel.net/blogs/convert-number-into-words-oracle-sql-query/

其次,如果您想了解更多关于“朱利安日”的信息,请访问:

http://en.wikipedia.org/wiki/Julian_day

第三,如果你想了解更多关于谁在1583年提出朱利安日数的问题,那就是“Joseph Scaliger”:

http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger

我不会继续重复这些网站中的另一位作者所做的事情,这就是为什么我只是发布了你可以访问它们的链接,并阅读了你需要了解如何查询这样的查询的原因:

SELECT TO_CHAR (TO_DATE (2447834,'jsp') FROM DUAL;

//输出:两百四十四万七千八百三十四

(编辑:上饶站长网)

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

    推荐文章
      热点阅读