使用 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;
我先用零填充时间到4个字符的长度。这是为了保证我们始终能够准确的把左边2个字符作为小时,右边2个字符作为分钟。
不用说,从上面的复杂性可以看出,将日期存储为文本可能会变得混乱。最好为此使用真正的 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;
我先用零填充时间到4个字符的长度。这是为了保证我们始终能够准确的把左边2个字符作为小时,右边2个字符作为分钟。
不用说,从上面的复杂性可以看出,将日期存储为文本可能会变得混乱。最好为此使用真正的 SQL 服务器日期列。