将破折号分隔的字符串转换为datatime2 sql server 2014

时间:2017-11-11 11:21:25

标签: sql-server string datetime casting

我在数据库中将日期和时间保存为文件名。每个文件名都是一个短划线字符串,例如2017-12-29-23-23-59-999.BMP(您可以假设格式为yyyy-MM-dd-hh-mm-ss-000.BMP)。如何将此字符串转换为Microsoft SQL server 2014中的datetime2?

1 个答案:

答案 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);