我正在使用DB2数据库。我有一张桌子,它有两列如下:
表名为sample
:
以下是专栏:
CRDATTIM TIMESTAMP NOT NULL ,
RECORDCD CHAR(1) CCSID 37 NOT NULL;
上表具有以下值:
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
现在,我想通过将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
等等
有关如何实现这一目标的任何想法?
答案 0 :(得分:2)
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 ;
答案 1 :(得分:0)
答案可能取决于DB2服务器的DB2版本和操作系统平台,但请尝试以下方法:
select timestamp_format(crdattim,'YYYY-MM-DD-HH24.MI.SS.NNNNNN'),recordcd from sample
您也可以尝试使用to_char()而不是timestamp_format()。
答案 2 :(得分:0)
根据DB2 doc,您可以使用varchar_format()或to_char():
select varchar_format (CURRENT_TIMESTAMP, 'YYYY-MM-DD') from SYSIBM.SYSDUMMY1;