如何将 2 个字符串列(日期和时间)转换为一个时间戳

How convert 2 string columns (date and time) to one timestamp

我有 table 两列(均为字符串):

| Dates    | Times          |

| -------- | -------------- |

|20210401  | 121012         |

|20210401  | 121024         |

我想将这些列以时间戳格式合并为一列:

YYYY-MM-DD HH:MM:SS

我试过了,但是错了:

CONVERT(datetime, CONVERT(CHAR(8), DATES, 112) + ' ' + CONVERT(CHAR(6), TIMES, 108))

SQL 服务器允许您添加 datetime 值,因此这是一种方便的数据类型。

很容易将日期转换为 datetime -- 它是标准格式。

时间栏有点诡异,但你可以加入':'进行转换:

select v.*,
       convert(datetime, v.date) + convert(datetime, stuff(stuff(time, 5, 0, ':'), 3, 0, ':'))
from (values ('20210401',  '121012')) v(date, time);
convert(datetime, DATES + ' ' + substring(TIMES, 1, 2) + ':' + substring(TIMES, 3, 2) + ':' + substring(TIMES, 5, 2) , 121)