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

前端之家收集整理的这篇文章主要介绍了sql – 如何在单词中显示数字值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问:在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;

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

猜你在找的MsSQL相关文章