最近在处理Oralce的语句转换为Sqlserver语句,大量的to_char看着头痛,在sqlserver上实现to_char()函数,改起来方便多了,调用需要注意一点,在sqlserver上调用函数,需要加上dbo.
调用方式
select to_char(getdate(),'yyyy')
--------------------------------------------------------
Create FUNCTION [dbo].[to_char]
(
@first DateTime,
@second varchar(80)
)
RETURNS varchar(80)
AS
BEGIN
-- Declare the return variable here
DECLARE @dt varchar(80),@yyyy varchar(80),@mm varchar(80),@dd varchar(80)
set @dt = Convert(varchar(80),@first,121)
select @yyyy = substring(@dt,1,4); --年
select @mm = substring(@dt,6,2); --月
select @dd = substring(@dt,9,2); --日
set @second = REPLACE(@second,'yyyy',@yyyy)
set @second = REPLACE(@second,'YYYY',@yyyy)
set @second = REPLACE(@second,'MM',@mm)
set @second = REPLACE(@second,'mm',@mm)
set @second = REPLACE(@second,'DD',@dd)
set @second = REPLACE(@second,'dd',@dd)
RETURN @second
END
GO
博主分享了如何在SQL Server中创建一个名为[dbo].[to_char]的自定义函数来模拟Oracle的to_char()函数,用于格式化日期。函数接受日期和格式字符串作为参数,通过字符串替换来实现日期的格式化输出。这使得从Oracle到SQL Server的语句转换变得更加方便。
1060

被折叠的 条评论
为什么被折叠?



