gpt4 book ai didi

sql - 如何使用 TIMESTAMP 数据类型减少 Oracle (SQL Plus) 中的列宽?

转载 作者:行者123 更新时间:2023-12-04 13:40:12 32 4
gpt4 key购买 nike

在 SQL Plus 输出中,它占用的空间比它需要的多得多,我想将它从 50 个字符减少到 20 个字符。

最佳答案

如果您将宽度减小到 20,它对于默认 TIMESTAMP 来说不够宽。或 TIMESTAMP WITH TIME ZONE格式。发生这种情况时,SQLPlus 将包装该值。

假设表b有时间戳列 TS :

COLUMN ts FORMAT A20
SELECT ts FROM b;

TS
--------------------
25-APR-13 11.28.40.1
50000 AM

要进一步缩小宽度,请确定所需的信息并相应地设置格式。列出了 Oracle DateTime 和 Timestamp 格式代码 here .

请注意,SQLPlus 不允许您使用 COLUMN 指定日期格式。陈述。这就是我使用 FORMAT A20 的原因以上。如果删除小数秒并使用 24 小时制而不是 AM/PM 并删除时区,则可以将其设置为 19 个字符:
COLUMN TSFormatted FORMAT A20
SELECT TO_CHAR(ts, 'MM/DD/YYYY HH24:MI:SS') AS TSFormatted FROM b;

TSFORMATTED
--------------------
04/25/2013 11:28:40

如果您愿意放弃世纪,您可以获得两个小数秒和 20 的确切宽度:
COLUMN TSFormatted FORMAT A20
SELECT TO_CHAR(ts, 'MM/DD/YY HH24:MI:SS.FF2') AS TSFormatted from b;

TSFORMATTED
--------------------
04/25/13 11:28:40.15

最后,如果您希望以某种方式自动格式化所有时间戳,请使用 ALTER SESSION :
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'MM/DD/YY HH24:MI:SS.FF2';
COLUMN ts FORMAT A20
SELECT ts from b; -- don't need to_char because of the default format

TS
--------------------
04/25/13 11:28:40.15

关于sql - 如何使用 TIMESTAMP 数据类型减少 Oracle (SQL Plus) 中的列宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217728/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com