2017-02-20 170 views
0

在SQL Server中,日期是越來越保存在以下格式: -轉換日期時間在SQL Server

2017-02-20 05:59:58.537 

但我需要在以下格式的輸出:

20/Feb/2017 11:29:58 AM 
+0

參見:http://www.sql-server-helper.com/tips/date-formats.aspx –

+0

爲什麼你存儲日期爲'VARCHAR'? –

+0

SQL根據默認設置存儲日期。在獲取該日期時,您需要根據您的要求轉換該日期。你可以試試這個http://www.sql-server-helper.com/sql-server-2008/sql-server-2008-date-format.aspx –

回答

0

正確答案:

SELECT REPLACE(CONVERT(VARCHAR(11), getdate(), 113), ' ', '/') + ' ' + CONVERT(VARCHAR(20), CONVERT(TIME, getdate()), 22) 
0

試試這個,

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')+' '+right(getdate(),7) 
+0

感謝您的迴應,但它沒有得到它的輸出有問題。缺失是'秒' – Asad

2

嘗試這個

select replace(convert(varchar(11),GETDATE(),113), ' ', '/')+ ' '+ RIGHT(CONVERT(varchar(20), GETDATE(), 22), 11); 
+1

感謝兄弟,它的工作 – Asad

+1

@Asad:如果答案解決了您的問題,您應該接受它,以便其他人會知道問題已解決。 –

+0

@Asad,更多分類:https://i.stack.imgur.com/QpogP.png –

0
Try below conversion method : 

DECLARE @DATE DATETIME = '2017-02-20 05:59:58.537' 
SELECT REPLACE(CONVERT(VARCHAR(11),@DATE,113), ' ', '/') + ' ' 
+CONVERT(VARCHAR(20),@DATE,108)+' ' +RIGHT(@DATE,2) 
0

SQL根據默認設置(yyyy-mm-dd hh:mm:ss:ms)存儲日期。在獲取該日期時,您需要根據您的要求轉換該日期。

Try this

+0

錯了。 [Sql服務器將日期存儲爲數字。](http://stackoverflow.com/questions/30032915/how-to-cast-the-datetime-to-time/30033028#30033028) –

0

我有我使用日期函數,你可以修改它包括時,分,秒的細節,太多。

CREATE FUNCTION [dbo].[fn_DateDisplay] 
(
    -- Add the parameters for the function here 
    @dateIn date 
) 
RETURNS nvarchar(MAX) 
AS 
BEGIN 
    -- Declare the return variable here 
    DECLARE @dateOut nvarchar(MAX) 

    DECLARE @yearIn int 
    DECLARE @monthIn int 
    DECLARE @dayIn int 

    DECLARE @monthOut nvarchar(3) 

    -- Add the T-SQL statements to compute the return value here 
    SET @yearIn = YEAR (@dateIn) 
    SET @monthIn = MONTH (@dateIn) 
    SET @dayIn = DAY (@dateIn) 

    SET @monthOut = SUBSTRING (DATENAME (MONTH , @dateIn) , 1 , 3) 

    SET @dateOut = CONCAT (@dayIn , ' ' , @monthOut , ' ' , @yearIn) 

    -- Return the result of the function 
    RETURN @dateOut 

END