如何转换Oracle TIMESTAMP?[已关闭]

g0czyy6m  于 2023-08-03  发布在  Oracle
关注(0)|答案(1)|浏览(69)

已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。

21天前关闭
Improve this question
我想将Oracle TIMESTAMP转换为'YYYY-MM-DD HH 24:MI:SS'
如何兑换时间戳?
↓这个方法不好

SELECT 
TO_CHAR(TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF') AS TIME_STAMP
FROM
ALL_OBJECTS

字符串
请把你的知识传授给我

2g32fytz

2g32fytz1#

您的查询不起作用,因为ALL_OBJECTS中没有TIMESTAMP列。即使有这样的列,结果也会得到 * 很多 * 的行。在我的21 cXE中,这将是

SQL> select count(*) from all_objects;

  COUNT(*)
----------
     64460

字符串
行;你会怎么做?
也许你是故意的?

SQL> SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:FF') AS TIME_STAMP FROM dual;

TIME_STAMP
-----------------------------
2023-07-13 05:47:48:130000


或者,您可以更改会话以避免使用TO_CHAR,例如

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
13-JUL-23 05.52.06.291000 AM +02:00

SQL> alter session set nls_timestamp_tz_format = 'yyyy-mm-dd hh24:mi:ss:ff';

Session altered.

SQL> select systimestamp from dual;

SYSTIMESTAMP
---------------------------------------------------------------------------
2023-07-13 05:56:58:734000

SQL>


要检查默认值,请参见例如

SQL> select parameter, value from v$nls_parameters
  2  where parameter in ('NLS_DATE_FORMAT', 'NLS_TIMESTAMP_FORMAT', 'NLS_TIMESTAMP_TZ_FORMAT');

PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_DATE_FORMAT                DD-MON-RR
NLS_TIMESTAMP_FORMAT           dd.mm.yyyy hh24:mi:ss.ff3
NLS_TIMESTAMP_TZ_FORMAT        yyyy-mm-dd hh24:mi:ss:ff

SQL>

相关问题