sql server 获取格式化日期时间

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

 

posted @ 2022-01-17 16:28  单纯的桃子  阅读(135)  评论(0编辑  收藏  举报