【发布时间】:2014-06-01 18:24:54
【问题描述】:
如何将datetime 值转换为yyyymmddhhmmss?
例如
来自2014-04-17 13:55:12
致20140417135512
【问题讨论】:
-
希望这个 SO 答案对您有所帮助:stackoverflow.com/questions/19506225/…
标签: sql-server-2008-r2 datetime-format
如何将datetime 值转换为yyyymmddhhmmss?
例如
来自2014-04-17 13:55:12
致20140417135512
【问题讨论】:
标签: sql-server-2008-r2 datetime-format
这似乎有效:
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', ''), ':', '')
【讨论】:
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '')
【讨论】:
从 SQL Server 2012 版开始,您可以使用:
SELECT format(getdate(),'yyyyMMddHHmmssffff')
【讨论】:
此查询是将DateTimeOffset 转换为yyyyMMddhhss 格式,带有偏移量。我已从数据中替换了连字符 colon(:), period(.),并保留了连字符以将 Offset 与 DateTime 分开。
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)
【讨论】:
FORMAT() 比 CONVERT() 慢。这个答案比@jpx 的答案略好,因为它只在日期的时间部分进行替换。
112 = yyyymmdd - no format change needed
108 = hh:mm:ss - remove :
SELECT CONVERT(VARCHAR, GETDATE(), 112) +
REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')
【讨论】: