MS SQL Формат даты - PullRequest
       61

MS SQL Формат даты

0 голосов
/ 04 августа 2020

я хочу получить sql формат даты, как показано ниже

требовать вывода

это я пробовал код

select case when
left(datepart(day,getdate()),1)=4 then concat(datepart(day,getdate()),'th',' of ',DATENAME(month,GETDATE()),' ',datepart(year,getdate()))
end

это результат моего запроса от 4 августа 2020 года

1 Ответ

0 голосов
/ 04 августа 2020
DECLARE @day int = datepart(day,getdate())

SELECT CONCAT(@day,
CASE WHEN @day=1 OR @day=21 OR @day=31 THEN 'st' 
 WHEN @day=2 OR @day=22 THEN 'nd' 
 WHEN @day=3 OR @day=23 THEN 'rd' ELSE 'th' END, ' of ',DATENAME(month,GETDATE()),' ',datepart(year,getdate()) )AS 'Date'

Дало бы вам что-то вроде этого.

Изменить: если вы сделаете это как функцию и передадите дату как параметр, вы можете использовать это практически где угодно. Нужно будет заменить getdate () именем параметра, затем

CREATE FUNCTION [dbo].[fnc_GetDateString]
(
    @date DATETIME
)
RETURNS nvarchar(100)
AS
BEGIN
 --DECLARE @date DATETIME = '2020-08-31'
  DECLARE @day int = datepart(day,@date)
  DECLARE @DateString nvarchar(100)
SET @DateString = CONCAT(@day,
CASE WHEN @day=1 OR @day=21 OR @day=31 THEN 'st' 
 WHEN @day=2 OR @day=22 THEN 'nd' 
 WHEN @day=3 OR @day=23 THEN 'rd' ELSE 'th' END, ' of ',DATENAME(month,@date),' ',datepart(year,@date) )

RETURN @DateString
END
...