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

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

时间(varchar)

2020-07-19T02:28:22.729Z
2020-07-19T02:48:33.979Z
2020-07-19T02:48:48.250Z
2020-07-19T02:53:24.307Z
2020-07-19T02:53:48.278Z

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

py49o6xq

py49o6xq1#

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

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

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

cast(time as datetime)
oxosxuxt

oxosxuxt2#

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

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

db小提琴演示:

select to_timestamp(
    replace(replace('2020-07-19T02:28:22.729Z', 'T', ' '), 'Z', ' '),
    'yyyy-mm-dd hh24:mi:ss.ff3'
) ts from sysibm.sysdummy1
|                               TS |
| -------------------------------: |
| 2020-07-19 02:28:22.729000000000 |
6ie5vjzr

6ie5vjzr3#

试试这个:

/*
WITH QUAKE (time) AS
(
VALUES
  '2020-07-19T02:28:22.729Z'
, '2020-07-19T02:48:33.979Z'
, '2020-07-19T02:48:48.250Z'
, '2020-07-19T02:53:24.307Z'
, '2020-07-19T02:53:48.278Z'
)

* /

SELECT TIMESTAMP(TRANSLATE(time, ' ', 'TZ'))
FROM QUAKE;

相关问题