如何在SQL Server中将datetime值转换为yyyymmddhhmmss?

vig*_*esh 26 datetime-format sql-server-2008-r2

如何将datetime价值转换为yyyymmddhhmmss

例如From 2014-04-17 13:55:12

20140417135512

小智 38

从SQL Server Version 2012开始,您可以使用:

SELECT format(getdate(),'yyyyMMddHHmmssffff')
Run Code Online (Sandbox Code Playgroud)


jpw*_*jpw 17

这似乎有效:

declare @d datetime
set @d = '2014-04-17 13:55:12'

select replace(convert(varchar(8), @d, 112)+convert(varchar(8), @d, 114), ':','') 
Run Code Online (Sandbox Code Playgroud)

结果:

20140417135512
Run Code Online (Sandbox Code Playgroud)


小智 9

SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
Run Code Online (Sandbox Code Playgroud)


Tim*_*Tim 5

FORMAT()比慢CONVERT()。该答案比@jpx的答案略好,因为它仅在日期的时间部分进行替换。

112 = yyyymmdd - no format change needed

108 = hh:mm:ss - remove :

SELECT CONVERT(VARCHAR, GETDATE(), 112) + 
       REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')
Run Code Online (Sandbox Code Playgroud)