2017-02-20 1 views
0

В сервере SQL, дата получения сохраняется в следующем формате: -преобразования даты и времени в 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

Спасибо за ваш ответ, но он не получает результат в соответствии с его данный вопрос. Missing is 'seconds' – Asad

2

Try This

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 
Смежные вопросы