此时间戳作为字符串保存到表中。查询表时如何将其转换为日期时间类型?
例如:
declare @timestamp as nvarchar
set @timestamp ='20130319092507.000000-000'
我已经尝试convert(datetime, timestamp, *n*)
过cast(timestamp as datetime)
此时间戳作为字符串保存到表中。查询表时如何将其转换为日期时间类型?
例如:
declare @timestamp as nvarchar
set @timestamp ='20130319092507.000000-000'
我已经尝试convert(datetime, timestamp, *n*)
过cast(timestamp as datetime)
我的第一个建议:修好你的桌子!停止将日期/时间值存储为字符串。不会有什么好事。例如,该列可能具有20130231
orHallowe'en
或This is not a date
,您现在必须将它们过滤掉。除了固有的验证之外,您还失去了执行日期操作的能力。
DECLARE @timestamp VARCHAR(32);
SET @timestamp = '20130319092507.000000-000';
SELECT CONVERT
(
DATETIME,
LEFT(@timestamp, 8) + ' '
+ STUFF(STUFF(SUBSTRING(@timestamp,9,6),3,0,':'),6,0,':')
);