我在数据库中将日期和时间保存为文件名。每个文件名都是一个短划线字符串,例如2017-12-29-23-23-59-999.BMP
(您可以假设格式为yyyy-MM-dd-hh-mm-ss-000.BMP)。如何将此字符串转换为Microsoft SQL server 2014
中的datetime2?
答案 0 :(得分:0)
这是一种方法,假设999是小数秒:
DECLARE @FileName varchar(100) = '2017-12-29-23-23-59-999.BMP';
SELECT CAST(
SUBSTRING(@FileName, 1, 10)
+ 'T'
+ REPLACE(SUBSTRING(@FileName, 12, 8), '-', ':')
+ '.'
+ SUBSTRING(@FileName, 21, 3)
AS datetime2);