如何将 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)
我有 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)