有段時間一直使用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)
oralce關於時間日期的操作
1.日期時間間隔操作 當前時間減去7分鐘的時間 select sysdate,sysdate interval 7 minute from dual 當前時間減去7小時的時間 select sysdate interval 7 hour from dual 當前時間減去7天的時間 select sy...
SQL時間日期處理
1.當前系統日期 時間 select getdate 2.dateadd 在向指定日期加上一段時間的基礎上,返回新的 datetime 值 例如 向日期加上2天 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3.datediff...
SQL時間日期總結
1.時間型別 datetime 8 bytes yyyy mm dd hh mm ss 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp 4 bytes yyyy mm dd hh mm ss 1970 01 01 00 00 01 2038 dat...