sqlserver关于时间的一些处理

本文介绍了SQL中用于处理日期和时间的几个关键函数,包括CONVERT用于格式化日期和时间,DATEADD用于增加或减少时间间隔,DATEPART提取日期部分,以及DATEDIFF计算时间差。这些函数在数据库管理和数据分析中非常实用。
摘要由CSDN通过智能技术生成

1,常用时间的一些转换 convert

SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47

其他的可以去查一查

2,dateAdd 添加时间 DATEADD(datepart,number,date)

--减1小时
SELECT DATEADD(hh,-1,'2020-09-03')--2020-09-02 23:00:00.000
SELECT DATEADD(hour,-1,'2020-09-03')--2020-09-02 23:00:00.000
--加1小时
SELECT DATEADD(hh,1,'2020-09-03')--2020-09-03 01:00:00.000
SELECT DATEADD(hour,1,'2020-09-03')--2020-09-03 01:00:00.000

3,datePart (DATEPART )返回代表指定日期的指定日期部分的整数

SELECT DATEPART(month, GETDATE())  --月份
SELECT DATEPART(HOUR, GETDATE())  --小时,24小时计时法

 获取当前整点时间和前一个小时

 select DATEADD( HOUR , DATEDIFF(HOUR, 0, GETDATE()) - 1 , 0 ) 
 select DATEADD( HOUR , DATEDIFF(HOUR, 0, GETDATE()) , 0 )  
 

 4,DATEDIFF 时间相减的值(间隔),注意是后面的一个值减去前面的一个,转为对应的值

select datediff(hour, '2023-06-24 00:00:00'	,'2023-06-24 02:00:00')

相减后,得到小时的间隔就是 2 两个小时 

select datediff(MONTH, '2023-07-24 00:00:00'	,'2023-08-25 02:00:00')

 相减后,得到月份的间隔就是 1个月

 其他参数值: 年year  月month 季quarter 日day 周week 时hour 分minute 秒second

1,datetime 时间格式的处理 类型,datetime  date  time

select GETDATE() , CAST(GETDATE() AS DATE) ,CAST(GETDATE() AS TIME) 

 时间转为Date获取日期部分比较正常,时间部分的话就不太友好了, 难道写个函数去掉 时间点后的部分??当然可以,性能不高,在时间转换的时候,除了cast 还有 Convert 转为指定的格式

select  CONVERT(VARCHAR(8), CAST(GETDATE() AS TIME)) 

这样就可以得到结果了。。。

要延伸一点的是,在SqlServer 12已经以上的版本中 有个函数  FORMAT 也可以处理时间,他主要处理数据的格式问题,时间也是一种特色格式的字符串,那么也是可以的。

select  FORMAT(GETDATE(),'yyyy-MM-dd')  ,FORMAT(GETDATE(),'HH:mm:ss')  ,FORMAT(GETDATE(),'yyyy-MM-dd HH:mm:ss')
 

 效果就很理想,简单方便,那么有时候未了一些格式,补全的也可以这么处理

 select 'K'+FORMAT(12, '0000') 

可以计算后得到对应的格式。。还可以换算成百分比

 Select FORMAT(0.34,'P00')

 

 

先记录到这里吧,后面有有新的应用点加上去!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值