转换日期时间在SQL Server

转换日期时间在SQL Server

问题描述:

在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 –

正确答案:

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

试试这个,

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

感谢您的回应,但它没有得到它的输出有问题。缺失是'秒' – Asad

尝试这个

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 –

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) 

SQL根据默认设置(yyyy-mm-dd hh:mm:ss:ms)存储日期。在获取该日期时,您需要根据您的要求转换该日期。

Try this

+0

错了。 [Sql服务器将日期存储为数字。](http://*.com/questions/30032915/how-to-cast-the-datetime-to-time/30033028#30033028) –

我有我使用日期函数,你可以修改它包括时,分,秒的细节,太多。

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