这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战
很久之前,还在驻场时,同一个办公室的小姐姐曾经指着自己的电脑屏幕询问:我查询的这些时间都是英文显示的,我想把它们都换成中文显示,怎么弄?
我说:请让一让。
叮叮当当……(敲起了小姐姐的键盘)
前提:操作系统和数据库支持中文。
CRT、xshell等远程连接工具查询
--查询时间
SQL> select first_time from v$log_history;
FIRST_TIME
------------------
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
30-DEC-20
--设置临时日期显示格式
SQL> alter session set nls_date_format = 'YYYY"年"MM"月"DD"日"';
Session altered.
SQL> select first_time from v$log_history;
FIRST_TIME
-----------------
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
2020年12月30日
--若查询结果显示乱码,在oracle用户下临时设置环境变量(linux环境)
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
--若查询结果显示乱码,在cmd界面下临时设置环境变量(windows环境)
set NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
之前遇到的过乱码问题:
plsqldev等远程连接工具查询
select first_time from v$log_history;
客户端查询,除了年月日还返回了时分秒,没关系,显示的格式转换加上就行。
select to_char(first_time,'yyyy"年"MM"月"dd"日" hh24"时"mi"分"ss"秒"') as first_time from V$log_history;