2011-09-23 143 views
10

在SQL Server中如何格式getdate()輸出爲YYYYMMDDHHmmSS其中HH是24小時格式?如何將getdate格式化爲YYYYMMDDHHmmSS

我已經得到了YYYYMMDD完成與

select CONVERT(varchar,GETDATE(),112) 

但那是據我得到了。

謝謝。

回答

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

這是多麼醜陋! :) –

+0

非常感謝回覆。這對我幫助很大 :)。 –

6

關閉而不是你所要求正是爲:

select CONVERT(varchar, GETDATE(), 126) 

例如

2011-09-23T12:18:24.837 

(YYYY-MM-DDTHH:MI:ss.mmm(無空格),ISO8601無時區)

編號:CAST and CONVERT

沒有辦法指定與CONVERT()自定義格式。另一種選擇是執行字符串操作以創建您想要的格式。

3

嘗試這種情況:

選擇轉換(VARCHAR,GETDATE(),120) 例如

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

Hth。

17

只是爲了任何人搜索這個功能,有SQL Server 2012,你可以使用格式化功能:

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

這使得任何.NET格式字符串使其成爲一個有用的新的補充。

+2

+1 - 非常有幫助。現在,您可以使用.net框架中的所有這些datetime.tostring格式。 http://msdn.microsoft.com/en-us/library/zdtaw1bw(v=vs.110).aspx – TWood

+0

謝謝,爲我工作! –

0

轉換日期時間這種方式需要多個呼叫進行轉換。最好的用法是在一個返回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十三點15分50秒

內作爲Thinhbk發佈,您可以使用select CONVERT(varchar,getdate(),20)select CONVERT(varchar,getdate(),120)得到相當接近你想要什麼。

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())); 
相關問題