有段时间一直使用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)