如何将getdate格式化为YYYYMMDDHHmmSS

时间:2011-09-23 04:08:27

标签: sql-server-2005 getdate

在SQL Server中,如何将getdate()输出格式化为YYYYMMDDHHmmSS,其中HH为24小时格式?

我已经完成了YYYYMMDD

select CONVERT(varchar,GETDATE(),112)

但就我而言。

感谢。

7 个答案:

答案 0 :(得分:23)

只有搜索具有SQL Server 2012功能的人才能使用FORMAT功能:

SELECT FORMAT ( GETDATE(), 'yyyyMMddHHmmss') AS 'Custom DateTime'

这允许任何.NET格式字符串使其成为有用的新增功能。

答案 1 :(得分:20)

select replace(
       replace(
       replace(convert(varchar(19), getdate(), 126),
       '-',''),
       'T',''),
       ':','')

答案 2 :(得分:6)

关闭但不完全是你要求的:

select CONVERT(varchar, GETDATE(), 126)

e.g。

2011-09-23T12:18:24.837

(yyyy-mm-ddThh:mi:ss.mmm(无空格),ISO8601无时区)

参考:CAST and CONVERT

无法使用CONVERT()指定自定义格式。另一种选择是执行字符串操作,以您希望的格式创建。

答案 3 :(得分:3)

试试这个:

选择CONVERT(varchar,GETDATE(),120) e.g。

2011-09-23 12:18:24 (yyyy-mm-dd hh:mi:ss(24h),ODBC规范)。

H个。

答案 4 :(得分:1)

另一种选择!

SELECT CONVERT(nvarchar(8), GETDATE(),112) + 
   CONVERT(nvarchar(2),DATEPART(HH,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(MI,GETDATE())) + 
   CONVERT(nvarchar(2),DATEPART(SS,GETDATE()));

答案 5 :(得分:0)

转换datetime这种方式需要多个转换调用。最好用的是返回varchar的函数。

select CONVERT(varchar,GETDATE(),112) --YYYYMMDD
select CONVERT(varchar,GETDATE(),108) --HH:MM:SS

将它们放在函数

DECLARE @result as varchar(20)
set @result = CONVERT(varchar,GETDATE(),112) + ' ' + CONVERT(varchar,GETDATE(),108)
print @result

20131220 13:15:50

正如Thinhbk发布的那样,您可以使用select CONVERT(varchar,getdate(),20)select CONVERT(varchar,getdate(),120)来获得您想要的内容。

答案 6 :(得分:-1)

select CONVERT(nvarchar(8),getdate(),112) + 
case when Len(CONVERT(nvarchar(2),DATEPART(HH,getdate()))) =1 then '0' + CONVERT(nvarchar(2),DATEPART(HH,getdate())) else CONVERT(nvarchar(2),DATEPART(HH,getdate())) end +
case when Len( CONVERT(nvarchar(2),DATEPART(MI,getdate())) ) =1 then '0' + CONVERT(nvarchar(2),DATEPART(MI,getdate())) else CONVERT(nvarchar(2),DATEPART(MI,getdate())) end