SQL常用的时间处理方式

本文介绍了SQL中获取和格式化日期时间的多种方法,如CONVERT函数的不同样式,以及如何通过DATEDIFF计算时间差。同时,针对varchar类型的时间字符串,提供了转换为datetime的处理函数,确保能正确进行时间运算。
摘要由CSDN通过智能技术生成

sql常用几种获取时间的方式:

CONVERT(VARCHAR,GETDATE(),23)--2020-11-24
CONVERT(VARCHAR,GETDATE(), 8)--14:45:34
CONVERT(VARCHAR,GETDATE(),120)--2020-11-24 14:00:47
CONVERT(VARCHAR,GETDATE(),21)--2020-11-24 14:35:12.167
DATENAME(HH,GETDATE())--获取当前小时//HH、YEAR、DAY
REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR,GETDATE(),21),' ',''),'-',''),':',''),'.','')--20201124141317043 //varchar类型

在这里插入图片描述


sql处理时间差:

ROUND(cast(DATEDIFF(mi,starting_date datetime,ending_date datetime)as float)/60,2)//round用于保留位数,必须要datetime类型的参数

处理时间差时有时候会出现varchar类型时间需要处理,这边提供一个时间的转换函数

declare @Date1 datetime,@varDate1 varchar(50)='20201124141317043'
select @Date1='1900-01-01',@varDate1=ltrim(rtrim(isnull(@varDate1,'')))
if len(@varDate1)=8
begin
	select @Date1 = convert(datetime,@varDate1)
end
else if len(@varDate1)=12
begin
	select @Date1 = convert(datetime,substring(@varDate1,1,8)+' '+substring(@varDate1,9,2)+':'+substring(@varDate1,11,2)+':00')
end
else if len(@varDate1)=14
begin
	select @Date1=convert(datetime,substring(@varDate1,1,8)+' '+substring(@varDate1,9,2)+':'+substring(@varDate1,11,2)+':'+substring(@varDate1,13,2))
end
else if len(@varDate1)=17
begin
	select @Date1=convert(datetime,substring(@varDate1,1,8)+' '+substring(@varDate1,9,2)+':'+substring(@varDate1,11,2)+':'+substring(@varDate1,13,2)+'.'+substring(@varDate1,15,3))
end
select @Date1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值