USE [TCX_32101]
GO
/****** Object: UserDefinedFunction [dbo].[f_get_format_datetime] Script Date: 2022/1/17 16:27:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: taozi
-- Create date: 2022年1月17日
-- Description: 获取格式化日期时间
-- =============================================
CREATE FUNCTION [dbo].[f_get_format_datetime]
(
@date datetime,
@format varchar(100)
)
RETURNS varchar(100)
AS
BEGIN
--year
set @format=replace(@format, 'yyyy', cast(year(@date) as char(4)))
set @format=replace(@format, 'yy', right(cast(year(@date) as char(4)),2))
--millisecond
set @format=replace(@format, 'ms', replicate('0',3-len(cast(datepart(ms,@date) as varchar(3)))) + cast(datepart(ms, @date) as varchar(3)))
--month
set @format=replace(@format, 'mm', replicate('0',2-len(cast(month(@date) as varchar(2)))) + cast(month(@date) as varchar(2)))
set @format=replace(@format, 'm', cast(month(@date) as varchar(2)))
--day
set @format=replace(@format, 'dd', replicate('0',2-len(cast(day(@date) as varchar(2)))) + cast(day(@date) as varchar(2)))
set @format=replace(@format, 'd', cast(day(@date) as varchar(2)))
--hour
set @format=replace(@format, 'hh', replicate('0',2-len(cast(datepart(hh,@date) as varchar(2)))) + cast(datepart(hh, @date) as varchar(2)))
set @format=replace(@format, 'h', cast(datepart(hh, @date) as varchar(2)))
--minute
set @format=replace(@format, 'nn', replicate('0',2-len(cast(datepart(n,@date) as varchar(2)))) + cast(datepart(n, @date) as varchar(2)))
set @format=replace(@format, 'n', cast(datepart(n, @date) as varchar(2)))
--second
set @format=replace(@format, 'ss', replicate('0',2-len(cast(datepart(ss,@date) as varchar(2)))) + cast(datepart(ss, @date) as varchar(2)))
set @format=replace(@format, 's', cast(datepart(ss, @date) as varchar(2)))
return @format
END
GO