选择列时将 TIMESTAMP 转换为字符串的 SQL 查询

新手上路,请多包涵

我正在使用 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

现在我想通过将 CRDATTIM 列下的值转换为字符串,而不是 TIMESTAMP 来选择表的所有列 sample (从样本中选择 *)。

例如 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

等等

关于如何实现这一目标的任何想法?

原文由 Ashok.N 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 822
2 个回答

Aniket V 的建议帮助我找到了解决方案。

在 SQL for CRDATTIM 字段中尝试嵌套函数。使用 TO_CHAR 函数以字符串形式获取时间戳,然后应用 REPLACE 函数将字符串中的空格替换为连字符

下面的查询对我有用,可以将时间戳转换为指定的字符串格式。

 select  TO_CHAR(CRDATTIM,'YYYY-MM-DD-HH24.MI.SS.FF6') as CRDATTIM ,recordcd from sample  ;

原文由 Ashok.N 发布,翻译遵循 CC BY-SA 3.0 许可协议

答案可能取决于您的 DB2 版本和 DB2 服务器的操作系统平台,但试试这个:

 select timestamp_format(crdattim,'YYYY-MM-DD-HH24.MI.SS.NNNNNN'),recordcd from sample

您也可以尝试使用 to_char() 而不是 timestamp_format()。

原文由 mao 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Stack Overflow 翻译
子站问答
访问
宣传栏