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')
先记录到这里吧,后面有有新的应用点加上去!