Sql server 2008 r2 如何在SQL server中将datetime值转换为yyyymmddhhmmss?

Sql server 2008 r2 如何在SQL server中将datetime值转换为yyyymmddhhmmss?,sql-server-2008-r2,datetime-format,Sql Server 2008 R2,Datetime Format,如何将datetime值转换为yyyymmddhhmmss SELECT CONVERT(VARCHAR,@date,112) + LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6) 比如说 从2014-04-17 13:55:12开始 SELECT CONVERT(VARCHAR,@date,112) + LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6) 对于2014041713551

如何将
datetime
值转换为
yyyymmddhhmmss

SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
比如说 从2014-04-17 13:55:12开始

SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
对于
20140417135512

这似乎有效:

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

select replace(convert(varchar(8), @d, 112)+convert(varchar(8), @d, 114), ':','') 
SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
结果:

20140417135512
SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)

另一个选项,我已经谷歌,但包含几个替换

SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)

自SQL Server 2012版起,您可以使用:

SELECT format(getdate(),'yyyyMMddHHmmssffff')
SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)

此查询用于将
DateTimeOffset
转换为带偏移量的格式
yyyyMMddhhss
。我已从数据中替换了连字符、
冒号(:)、句号(.)
,并保留了连字符,以便将偏移量与
日期时间
分开

SELECT REPLACE(SUBSTRING(CONVERT(VARCHAR(33),SYSDATETIMEOFFSET(),126), 1, 8), '-', '') +
SUBSTRING(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126),'T',''),'.',''),':',''),9,DATALENGTH(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126)))
SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
这也行

SELECT replace(replace(replace(convert(varchar, getdate(), 120),':',''),'-',''),' ','')
SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)

20090320093349

SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
FORMAT()
CONVERT()
慢。这个答案略好于@jpx的答案,因为它只在日期的时间部分进行替换

SELECT CONVERT(VARCHAR,@date,112) + 
LEFT(REPLACE(CONVERT(VARCHAR,@date,114),':',''),6)
112 = yyyymmdd - no format change needed

108 = hh:mm:ss - remove :

SELECT CONVERT(VARCHAR, GETDATE(), 112) + 
       REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')

希望这个答案能对你有所帮助:只有代码的答案被认为是低质量的。如果你不编辑你的答案以便添加解释,那么你的答案很可能会被删除。这大大简化了我的生活!