В сервере SQL, дата получения сохраняется в следующем формате: -преобразования даты и времени в SQL Server
2017-02-20 05:59:58.537
Но мне нужен выход в следующем формате:
20/Feb/2017 11:29:58 AM
В сервере SQL, дата получения сохраняется в следующем формате: -преобразования даты и времени в SQL Server
2017-02-20 05:59:58.537
Но мне нужен выход в следующем формате:
20/Feb/2017 11:29:58 AM
Правильный ответ:
SELECT REPLACE(CONVERT(VARCHAR(11), getdate(), 113), ' ', '/') + ' ' + CONVERT(VARCHAR(20), CONVERT(TIME, getdate()), 22)
Попробуйте это,
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')+' '+right(getdate(),7)
Спасибо за ваш ответ, но он не получает результат в соответствии с его данный вопрос. Missing is 'seconds' – Asad
Try This
select replace(convert(varchar(11),GETDATE(),113), ' ', '/')+ ' '+ RIGHT(CONVERT(varchar(20), GETDATE(), 22), 11);
спасибо, что он работает – Asad
@Asad: Если ответ решил вашу проблему, вы должны принять его, чтобы другие люди знали, что проблема решена. –
@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). при получении этой даты вам необходимо преобразовать эту дату в соответствии с вашим требованием.
Неверно. [Сервер Sql хранит даты как числа.] (Http://stackoverflow.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
См: http://www.sql-server-helper.com/tips/date-formats.aspx –
Почему вы хранить даты как 'VARCHAR'? –
SQL хранит дату в соответствии с настройкой по умолчанию. при получении этой даты вам необходимо преобразовать эту дату в соответствии с вашим требованием. Вы можете попробовать это http://www.sql-server-helper.com/sql-server-2008/sql-server-2008-date-format.aspx –