使用 SQL 将字符串转换为时间

Convert string to time using SQL

我有两列,日期和时间。列如下:

Date Time
16/03/11 1812

我想使用 SQL 查询将两列合并为日期格式,使其成为这样的格式:

yyyy-mm-dd hh mm ss -> 2011-03-16 18:12:00

获取格式的正确查询是什么?

您可以在此处使用 CONVERT 以及一些字符串操作:

SELECT Date, Time,
       CONVERT(datetime, Date + ' ' + LEFT(RIGHT('00' + Time, 4), 2) + ':' +
                                      RIGHT(RIGHT('00' + Time, 4), 2), 3) AS dt
FROM yourTable;

Demo

我先用零填充时间到4个字符的长度。这是为了保证我们始终能够准确的把左边2个字符作为小时,右边2个字符作为分钟。

不用说,从上面的复杂性可以看出,将日期存储为文本可能会变得混乱。最好为此使用真正的 SQL 服务器日期列。