2015-02-10 314 views
2

我想將getdate()轉換爲SQL Server中的這種格式(10-Feb-15 18:25:57)。如何在SQL Server中獲取日期格式(dd-MMM-yy HH:mm:ss)?

select getdate() 

讓我

2015-02-10 18:25:37.567 

,但我想在10-Feb-15 18:25:37格式的日期。

如何將此日期格式轉換爲我需要的格式?

我是SQL Server的新手。

感謝....

+0

可能重複[在日期省略毫秒(HTTP://計算器。com/questions/2246655 /省略毫秒) – 2015-02-10 13:01:16

+4

將數據保存在整個數據庫的'DateTime'變量(不包含*格式)並且只將其轉換爲數據一個字符串(並應用格式化)向用戶呈現數據時 - 通常,有一個更適合的層(報告工具或其他語言),這些格式化問題很容易處理,而不是嘗試在T-SQL中執行數據庫。 – 2015-02-10 13:13:28

回答

4

這不完全是,但最接近的是:

select convert(varchar, getdate(), 113) 

10 Feb 2015 15:00:30:513 

爲了獲得無毫秒可以縮短字符串:

select convert(varchar(20), getdate(), 113) 

你可以找到這裏的格式:https://msdn.microsoft.com/en-us/library/ms187928%28v=sql.100%29.aspx

如果你真的需要那個exac t格式,我想你必須使用datepart/datename。

0

我們可以日期轉換爲多種格式
選擇Convert(NVARCHAR,GETDATE(),106)
這可能會幫助你 Click

0

你的情況有一個適合你的需要沒有固定的日期時間格式。您將不得不分別格式化日期和時間,並用短劃線替換空格。

下面將在你請求的格式生成日期時間:

select replace(convert(varchar(9), getdate(), 6), ' ', '-') 
     + ' ' + convert(varchar(8), getdate(), 8) 

結果:

10-Feb-15 14:08:54 
格式化日期時間

MSDN文檔:CAST and CONVERT (Transact-SQL)

1
SELECT REPLACE(CONVERT(varchar(11),SYSDATETIME(),13),' ','-')+' '+ CONVERT(VARCHAR(8), SYSDATETIME(), 8) 
1

日期類型不有任何格式,它們是二進制類型。格式僅適用於要將日期值轉換爲字符串的情況。

在SQL Server 2012+可以使用FORMAT函數的日期格式通過任何.NET支持的標準格式字符串,或自定義格式字符串,例如:

DECLARE @d DATETIME = GETDATE(); 
SELECT FORMAT(@d, 'dd-MMM-yy HH:mm:ss', 'en-US') 
------------------ 
10-Feb-15 15:35:55 

在以前的版本SQL Server僅限於使用CONVERT的一些預定義格式,或者通過連接日期部分值來構造最終字符串。

4

這將讓你的確切格式:的

SELECT 
    STUFF(STUFF(CONVERT(char(20), getdate(), 113),3,1, '-'),7,1,'-') 
相關問題