【发布时间】:2017-11-11 11:21:25
【问题描述】:
我将日期和时间作为文件名保存在我的数据库中。每个文件名都是一个破折号分隔的字符串,例如2017-12-29-23-23-59-999.BMP(您可以假设格式为 yyyy-MM-dd-hh-mm-ss-000.BMP)。如何在Microsoft SQL server 2014 中将此字符串转换为 datetime2?
【问题讨论】:
标签: 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?
【问题讨论】:
标签: sql-server string datetime casting
这是一种方法,假设 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);
【讨论】: