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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SQL Server中将datetime值转换为yyyymmddhhmmss?相关的知识,希望对你有一定的参考价值。

如何将datetime值转换成yyyymmddhhmmss

例如来自2014-04-17 13:55:12

20140417135512

答案

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

SELECT format(getdate(),'yyyyMMddHHmmssffff')
另一答案

这似乎有效:

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

select replace(convert(varchar(8), @d, 112)+convert(varchar(8), @d, 114), ':','') 

结果:

20140417135512
另一答案
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
另一答案

FORMAT()CONVERT()慢。这个答案稍微好于@jpx的答案,因为它只对日期的时间部分进行了替换。

112 = yyyymmdd - no format change needed

108 = hh:mm:ss - remove :

SELECT CONVERT(VARCHAR, GETDATE(), 112) + 
       REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')
另一答案

我用google搜索的另一个选项,但包含几个替换...

SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
另一答案

此查询是将DateTimeOffset转换为带有Offset的格式yyyyMMddhhss。我已经从数据中替换了连字符colon(:), period(.),并保留了连字符以便从DateTime中分离出Offset。

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 replace(replace(replace(convert(varchar, getdate(), 120),':',''),'-',''),' ','')
另一答案

20090320093349

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

以上是关于如何在SQL Server中将datetime值转换为yyyymmddhhmmss?的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 中将 varchar 'hh:mm:ss' 转换为 datetime hh:mm:ss

在 sql server 中将 varchar yyyy-mm-dd T hh:mm 转换为 datetime2

如何在 SQL Server 中将字符串转换为日期时间?

如何在 sql server 2008 中将日期与 GETDATE() 进行比较

在 SQL Server 中将字符串转换为日期

在 MS SQL Server 中将字符串转换为日期时间