我正在使用 DB2 数据库。我有一张表,它有两列,如下所示:
表名是sample: 以下是列:
CRDATTIM TIMESTAMP NOT NULL ,
RECORDCD CHAR(1) CCSID 37 NOT NULL;
Run Code Online (Sandbox Code Playgroud)
上表具有以下值:
CRDATTIM RECORDCD
2014-08-08 12:12:39.621060 O
2014-08-27 07:01:46.814080 T
2014-08-27 06:41:47.404080 T
2014-08-27 07:14:47.871080 T
2014-08-28 02:23:50.390080 T
2014-08-28 06:27:58.298080 T
2014-09-02 08:57:37.607080 T
Run Code Online (Sandbox Code Playgroud)
现在我想sample通过将CRDATTIM列下的值转换为字符串来选择表的所有列(从示例中选择 *),而不是作为TIMESTAMP.
例如,列下的值CRDATTIM 2014-08-08 12:12:39.621060应返回为2014-08-08-12.12.39.621060。
相似地
2014-08-27 07:01:46.814080 应返回为 2014-08-27-07.01.46.814080
等等
关于如何实现这一目标的任何想法?
Aniket V 的建议帮助我找到了解决方案。
在 SQL for CRDATTIM 字段中尝试嵌套函数。使用 TO_CHAR 函数将时间戳作为字符串获取,然后应用 REPLACE 函数将字符串中的空格替换为连字符
下面的查询对我有用,可以将 Timestamp 转换为指定的字符串格式。
select TO_CHAR(CRDATTIM,'YYYY-MM-DD-HH24.MI.SS.FF6') as CRDATTIM ,recordcd from sample ;
Run Code Online (Sandbox Code Playgroud)