如何将@lastEndTime转换为字符串格式YYYY-MM-DD HH:MM:SS.MS
?Microsoft SQL Server 2005将日期/时间转换为字符串
DECLARE @lastEndTime datetime
如何将@lastEndTime转换为字符串格式YYYY-MM-DD HH:MM:SS.MS
?Microsoft SQL Server 2005将日期/时间转换为字符串
DECLARE @lastEndTime datetime
CONVERT(nvarchar, @lastEndTime, 121)
真可怕,让你不得不使用datepart功能,并建立起来一个精确的格式。
select datepart(yyyy, @lastEndTime) + '-' + datepart(mm, @lastEndTime) + '-' + datepart(dd, @lastEndTime) +' ' + datepart(hh, @lastEndTime) + ':' + datepart(mm, @lastEndTime) + ':' + datepart(ss, @lastEndTime) + '.' + datepart(ms,@lastEndTime)
您可以将其定义为function,以方便使用。
编辑 - 正如有人所指出的那样,这种格式恰好是一个标准 - ODBC规范等等
CONVERT(CHAR(23), @lastEndTime, 121)
应该这样做。
查看MSDN在线文档CAST and CONVERT - 它具有所有支持的内置日期格式的完整列表,您可以使用CONVERT。
E.g.
CONVERT(VARCHAR(50), GETDATE(), 100)
将今天的日期和时间转换为格式为mon dd yyyy hh:miAM (or PM)
的字符串。
如果字符串不匹配任何这些格式,那么你要么必须
DATEPART
函数抽取位和您的DATETIME件并串连一起手动DECLARE @lastEndTime日期时间 组@lastEndTime = GETDATE()
选择转换(VARCHAR,@ lastEndTime,121)
@ jfrobishow:我想这里是一次性错误。毫秒的变体是'121'。 – 2010-04-14 20:50:40
呸,吸 – Kevin 2010-04-14 20:36:20
耶,那样做。幸运的是,您不必为上述ODBC规范格式执行此操作。 – 2010-04-14 20:41:44
好点@andras - 我认为这是121。我习惯于做奇怪的格式,我总是手动做它(这显然是邪恶的,当涉及到性能)。更新答案。 – 2010-04-14 20:44:24