如何在Oracle SQL中转换日期为Shamsi/波斯语格式?

2022-01-30 13:21:58 标签 sqloracledate

我想将日期转换为Shamsi/波斯语格式,但它没有很好地工作。我的代码:

SELECT TO_CHAR('10-JUN-18', 'dd-mm-yy','nls_calendar=persian') 
FROM dual;

我希望它是这样的:20-03-97

# # #TO_CHAR( date_value format_model nls_parameters ) takes需要一个DATE data typ数据类型作为第一个参数。

'10-JUN-18'不是DATE数据类型;它是一个字符串字面值(恰好看起来像日期)。Oracle将尝试执行从字符串到日期的隐式转换,但这种隐式转换是失败的(依赖隐式转换是不好的做法)。

如果你使用一个DATE字面值,那么你的代码工作:

SELECT TO_CHAR(DATE '2018-06-10', 'dd-mm-yy','nls_calendar=persian') AS dt
FROM   DUAL;

DT

20-03-97

或者你可以显式地将字符串字面值转换为日期,然后再将其转换回来:

SELECT TO_CHAR(
         TO_DATE('10-JUN-18', 'DD-MON-RR', 'NLS_DATE_LANGUAGE=English'),
         'dd-mm-yy',
         'nls_calendar=persian'
       ) AS dt
FROM   DUAL;

DT

20-03-97

db<此处小提琴

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码