【问题标题】:How to change timestamp column size in DB2?如何更改 DB2 中的时间戳列大小?
【发布时间】:2015-05-18 08:52:39
【问题描述】:

知道如何在 DB2 中更改 timestamp 列大小吗?

我尝试更改表,删除然后创建表。两者都不起作用。

以下是我尝试过的查询:

alter table clnt_notes alter column lupd_ts set data type timestamp(26)

create table CLNT_NOTES
    (NOTE_ID int not null generated always as identity (start with 1, increment by 1),
     CLNT_ID varchar(10) not null,
     TX varchar(200),
     LUPD_TS timestamp(26) not null)

【问题讨论】:

  • db2时间戳固定长度为26,格式如下:"0000-00-00-00.00.00.000000"
  • 它在我的数据库中显示“10”。所以问题是如何将其更改为更高的值,即 26?
  • 那是因为它是以打包格式保存的,它并没有以那种格式保存在数据库中,但这是你阅读时应该得到的
  • “列大小”到底是什么意思?你指的是什么“大小”?您要解决的真正问题是什么?
  • DB2 的平台和版本会有所帮助。

标签: sql db2


【解决方案1】:

这取决于您的 DB2 平台和版本。过去,DB2 中的时间戳对于小数秒部分都具有 6 位精度。字符串形式,“YYYY-MM-DD-HH:MM:SS.000000”

但是,DB2 LUW 10.5 和 DB2 for IBM i 7.2 支持小数秒部分的 0 到 12 位精度。以字符串形式,您可以从“YYYY-MM-DD-HH:MM:SS”到“YYYY-MM-DD-HH:MM:SS.000000000000”。

默认精度为 6,因此如果您指定没有精度(长度)的时间戳,您将获得六位精度。否则,您可以指定从 o 到 12 的精度。

create table mytable (
  ts0 timestamp(0)
  , ts6 timestamp
  , ts6_also timestamp(6)
  , ts12 timestamp(12)
);

但是请注意,虽然外部(不完全是字符串)格式,但 DBMS 表面可能会在 19 到 32 字节之间变化。存储 TS 的内部格式可能不是。在 DB2 for IBM i 上,TS 字段的内部存储格式至少需要 7 到 13 个字节,具体取决于精度。

  • 时间戳(0) -> 7 个字节
  • timestamp(6) -> 10 字节(默认)
  • 时间戳(12) -> 13 个字节

【讨论】:

    【解决方案2】:

    由于您将 10 称为长度,我假设您正在查看 SYSIBM.SYSCOLUMNS(或目录中的另一个等效表。

    目录中的LENGTH 列是指字段的内部长度。您可以使用以下公式进行计算:

    FLOOR( ((p+1)/2) + x )
    
    • p 是时间戳的精度(小数点后的位数[微秒])
    • 对于没有时区的时间戳,x 为 7,如果有时区,则为 9(如果您的平台支持)

    如果您将 与SQLCA 中的字段进行比较,则该字段将是时间戳的字符表示的长度。有关这两个字段的说明,请参阅 this Information Center article


    如果你真的想改变你的时间戳字段的比例,那么你可以使用下面的语句。 x 应该是一个整数,表示秒位置小数点后的位数。

    允许的小数位数因平台和版本而异。如果您使用的是旧版本,则可能无法更改设置为 6 的比例。但是,一些较新的平台(如 z/OS 10+、LUW 9.7+)将允许您设置比例到 0 到 12(含)之间的数字。

    ALTER TABLE SESSION.TSTAMP_TEST 
    ALTER COLUMN tstamp 
    SET DATA TYPE TIMESTAMP(x);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-12
      • 2023-04-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多