将sql中的varchar列转换为datetime格式?

5n0oy7gb  于 2021-07-24  发布在  Java
关注(0)|答案(3)|浏览(625)

时间(varchar)

  1. 2020-07-19T02:28:22.729Z
  2. 2020-07-19T02:48:33.979Z
  3. 2020-07-19T02:48:48.250Z
  4. 2020-07-19T02:53:24.307Z
  5. 2020-07-19T02:53:48.278Z

我想把这个columntime(varchar)改为IBMCloud中的DateTimeFormat?

py49o6xq

py49o6xq1#

mysql和sql server(原始标记)都理解此格式,因此您可以使用:

  1. cast('2020-07-19T02:28:22.729Z' as datetime)

在两个数据库中,或使用列名:

  1. cast(time as datetime)
oxosxuxt

oxosxuxt2#

想必,你想把你的弦变成 timestamp 而不是一个 date ,因为它包含毫秒。在db2中,可以使用 to_timestamp() 为了这个。你需要先去掉中间的部分 'T' 然后是尾随 'Z' .
这应该做到:

  1. to_timestamp(
  2. replace(replace('2020-07-19T02:28:22.729Z', 'T', ' '), 'Z', ' '),
  3. 'yyyy-mm-dd hh24:mi:ss.ff3'
  4. )

db小提琴演示:

  1. select to_timestamp(
  2. replace(replace('2020-07-19T02:28:22.729Z', 'T', ' '), 'Z', ' '),
  3. 'yyyy-mm-dd hh24:mi:ss.ff3'
  4. ) ts from sysibm.sysdummy1
  1. | TS |
  2. | -------------------------------: |
  3. | 2020-07-19 02:28:22.729000000000 |
展开查看全部
6ie5vjzr

6ie5vjzr3#

试试这个:

  1. /*
  2. WITH QUAKE (time) AS
  3. (
  4. VALUES
  5. '2020-07-19T02:28:22.729Z'
  6. , '2020-07-19T02:48:33.979Z'
  7. , '2020-07-19T02:48:48.250Z'
  8. , '2020-07-19T02:53:24.307Z'
  9. , '2020-07-19T02:53:48.278Z'
  10. )
  11. * /
  12. SELECT TIMESTAMP(TRANSLATE(time, ' ', 'TZ'))
  13. FROM QUAKE;

相关问题