在SQL中关于时间日期的操作

有段时间一直使用SQL获取不同的日期时间,这是那段时间留下的一些零散笔记,在此分享;
如果有更全的,希望您能补充,谢谢!

--获取当前时间
SELECT GETDATE();
--获取当前年月日
select CONVERT(varchar(10),getdate(),120);
--获取当前年月
select CONVERT(varchar(7),GETDATE(),120);

--获取上个月的值
select Month(Dateadd(Month,-1,GETDATE()));
select (Month(GETDATE())+10)%12+1
--带上年
select replace(substring(convert(varchar(32),dateadd(month,-1,getdate()),120),1,7),'-','-')
select convert(varchar(7),dateadd(month,-1,getdate()),120)
select replace(convert(varchar(7),dateadd(month,-1,getdate()),120),'-','年')+'月'

SELECT DATEDIFF( Second, '2009-8-25 12:15:12', '2009-9-1 7:18:20') --返回相差秒数
SELECT DATEDIFF( Minute, '2009-9-1 6:15:12', '2009-9-1 7:18:20') --返回相差分钟数 

SELECT DATEDIFF( Day, '2009-8-25 12:15:12','2009-9-1 7:18:20')--返回相差的天数
SELECT DATEDIFF( Hour, '2009-8-25 12:15:12', '2009-9-1 7:18:20')--返回相差的小时 

--求两个时间的相差的分钟数
SELECT CONVERT(INT,DATEDIFF(Day, '2009-8-25 12:15:12', '2009-9-1 7:18:20')*24*60)+CONVERT(INT,DATEDIFF(Hour,'2009-8-25 12:15:12','2009-9-1 7:18:20')*60)+CONVERT(INT,DATEDIFF(Minute, '2009-9-1 6:15:12', '2009-9-1 7:18:20'))

--根据输入的秒数以时分秒的形式显示出来
declare @alls int
declare @s varchar(2)
declare @h varchar(2)
declare @m varchar(2)
declare @v varchar(30)
set @alls = '90'
select @h = convert(varchar(2),@alls/3600)
if (LEN(@h) = 1)
	set @h = '0'+@h 
select @m = convert(varchar(2),(@alls - @h*3600)/60)
if (LEN(@m) = 1)
	set @m = '0'+@m
select @s = convert(varchar(2),(@alls - @h*3600 - @m*60))
if (LEN(@s) = 1)
	set @s = '0'+@s
select @v = @h+':'+@m +':'+@s
print(@v)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值