我需要使用sql将日期转换为单词,是否可能
SELECT TO_CHAR (TO_DATE (2, 'j'), 'jsp') FROM DUAL;
我想知道为什么我们在这个查询中使用'j'和'jsp。
答案 0 :(得分:3)
TO_DATE (2, 'j')
使用Julian格式将数字“2”转换为Oracle DATE
数据类型。这给你的日期是公元前47年,公元前4713年。
TO_CHAR( ..., 'jsp' )
将Julian日期转换回整数,“sp”表示“拼出数字”。
除非您将日期时间转换为字符串,否则似乎拼写不可用。
答案 1 :(得分:0)
如果你查看查询的最内部部分to_date(:number,'j'),'j'或J是朱利安日期(公元前4713年1月1日),基本上这个日期用于天文研究
所以to_date(:number,'j')取数字所代表的数字并假装它是朱利安日期,转换成日期。
如果您将3传递给数字,那么它将日期转换为公元前4713年1月3日,这意味着将3添加到Julian日期。
现在to_char(to_date(:number,'j'),'jsp'),jsp = Now;取该日期(to_date(:number,'j'))并拼写它代表的朱利安数字