2010-04-14 88 views

回答

2
CONVERT(nvarchar, @lastEndTime, 121) 
3

真可怕,让你不得不使用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) 

应该这样做。

+0

呸,吸 – Kevin 2010-04-14 20:36:20

+1

耶,那样做。幸运的是,您不必为上述ODBC规范格式执行此操作。 – 2010-04-14 20:41:44

+0

好点@andras - 我认为这是121。我习惯于做奇怪的格式,我总是手动做它(这显然是邪恶的,当涉及到性能)。更新答案。 – 2010-04-14 20:44:24

3

查看MSDN在线文档CAST and CONVERT - 它具有所有支持的内置日期格式的完整列表,您可以使用CONVERT。

E.g.

CONVERT(VARCHAR(50), GETDATE(), 100) 

将今天的日期和时间转换为格式为mon dd yyyy hh:miAM (or PM)的字符串。

如果字符串不匹配任何这些格式,那么你要么必须

  • 使用DATEPART函数抽取位和您的DATETIME件并串连一起手动
  • 使用SQLCLR和。 NET DateTime函数在SQL-CLR用户定义的函数中执行它
  • 不要在SQL Server中执行它并将DATETIME传回给调用客户端,并让调用方处理转换为实际的演示文稿格式
相关问题