當前位置:首頁 » 編程語言 » sql計算幾年幾個月
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql計算幾年幾個月

發布時間: 2023-01-04 02:05:10

1. sql日期計算

1,
select dateadd(dd,2-datepart(dw,dateadd(wk,周數-1,年份)),dateadd(wk,周數-1,周數)),dateadd(dd,8-datepart(dw,dateadd(wk,周數-1,周數)),dateadd(wk,周數-1,周數))
注意:年份的格式為『****-01-01』,如你這里的2009年則是『2009-01-01』
2,
declare @i int
declare @datetime datetime
declare @table table(ID int,date datetime)
set @i=1
set @datetime=年份+月份+01(格式如『2009-06-01』)
while @datetime < 年份+(月份+1)+01(格式如『2009-07-01』)
begin
if datepart(weekday,@datetime)=2
begin
insert into @table values(@i,@datetime)
set @i=@i+1
end
set @datetime=dateadd(day,1,@datetime)
end
select * from @table where ID=周數
我這樣寫應該很容易看,有什麼問題再問我,要求加分……

2. sql 怎麼查詢每一年1到12個月的數據

工具/材料:Management Studio。

1、首先在桌面上,點擊「Management Studio」圖標。

3. sqlserver中返回兩個日期間相差幾年零幾月

select datediff(month,'2017-1-5','2018-05-25')/12 ,datediff(month,'2017-1-5','2018-05-25')%12
執行結果:1年4個月
注釋:
datediff(month,'2017-1-5','2018-05-25')取出兩個日期相差的總月數;
datediff(month,'2017-1-5','2018-05-25')/12 取出兩個日期相差的總年數。
datediff(month,'2017-1-5','2018-05-25')%12 取出總年數後,剩餘月數。

4. 怎麼利用SQL語句計算某年某月有多少天

用SQL語句吧。先比較一下select max(date) from tablewhere date between "yyyy-mm-dd" and "yyyy-mm-dd"先把上個月的最大值拿出來,然後再用當前的值跟它比較。其實就是統計當前資料庫中的最新插入數據的日期。select top 1 from tableorde by data desc這樣就把資料庫中的日期欄位按降序,排出來,而top1會把最頂上,也就是最大的值拿出來。拿出來了,就可以算了。用最新的那個日期減去上個月的。如果值等於月份天數。就說明夠一個月了。再按照你自己的算錢的方法來算吧!

5. 計算兩個時間相差多少年月日的sql演算法

如:起始時間 2011-1-1 截止日期 2011-2-1 兩個時間比較相差 0年1個月 如:起始時間 2010-11-1 截止日期 2011-12-1 兩個時間比較相差 1年1個月 怎麼比較才能得出~ 相差多少年 多少個月 這個當然很簡單, 一句SQL就可以了:select ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月'
但是如果連幾天也要計算呢?閑著沒事自己隨便在SQL Server下寫了寫,store proceres代碼如下,應該沒可以了:CREATE PROCEDURE GetDateDiff
@fromDate nvarchar(10),
@toDate nvarchar(10)
AS

DECLARE @YearDiff INTEGER
DECLARE @MonthDiff INTEGER
DECLARE @DayDiff INTEGER
DECLARE @ToMonth INTEGER
DECLARE @FromDay INTEGER
DECLARE @ToDay INTEGER

SET @YearDiff = LTRIM(DATEDIFF(yy, @fromDate, @toDate))
SET @MonthDiff = LTRIM(DATEDIFF(mm, @fromDate, @toDate)%12)
SET @ToMonth = Month(cast(@toDate as Datetime))
SET @FromDay = Day(cast(@fromDate as Datetime))
SET @ToDay = Day(cast(@ToDate as Datetime))
IF (@ToDay - @FromDay) < 0
BEGIN
IF (@ToMonth - 1) = 1 OR (@ToMonth - 1) = 3 OR (@ToMonth - 1) = 5 OR (@ToMonth - 1) = 7 OR (@ToMonth - 1) = 8 OR (@ToMonth - 1) = 10 OR (@ToMonth - 1) = 12
BEGIN
SET @DayDiff = 31 + @Today - @FromDay
SET @MonthDiff = @MonthDiff -1
END
ELSE
BEGIN
SET @DayDiff = 30 + @Today - @FromDay
SET @MonthDiff = @MonthDiff -1
END
END
ELSE
BEGIN
SET @DayDiff = @Today - @FromDay
END

SELECT CAST(@YearDiff AS NVARCHAR(10)) + '年' + CAST(@MonthDiff AS NVARCHAR(10)) + '月' + CAST(@DayDiff AS NVARCHAR(10)) + '日'

6. 求1年(或月)有多少天的SQL語句怎麼寫

以下是以取當前系統時間為例求一個月有多少天
分為31天、30天和潤年非閏年的2月的判斷
年同理分為潤年的366和非閏年的365
判斷同理不再寫出來
print
case
when SUBSTRING (left(GETUTCDATE(),10),1,2) in (1,3,5,7,8,10,12) then '31天'
when SUBSTRING (left(GETUTCDATE(),10),1,2) in (4,6,9,11) then '30天'
when SUBSTRING (left(GETUTCDATE(),10),1,2) = 2 and (right(left(GETUTCDATE(),10),4)%4=0 and right(left(GETUTCDATE(),10),4)%100<>0 or right(left(GETUTCDATE(),10),4)%400=0) then '29天' else '28天'
end

每個人都不同
我沒有去過論壇
我只是看了一個電子文檔
你要是要的話
可以晚上9點到10點(我的一般在線時間)之間pm我
我傳你

7. sql 計算兩個日期相差多少年月日

如:起始時間
2011-1-1
截止日期
2011-2-1
兩個時間比較相差
0年1個月
如:起始時間
2010-11-1
截止日期
2011-12-1
兩個時間比較相差
1年1個月
怎麼比較才能得出~
相差多少年
多少個月
這個當然很簡單,
一句sql就可以了:select
ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月'
但是如果連幾天也要計算呢?閑著沒事自己隨便在sql
server下寫了寫,store
proceres代碼如下,應該沒可以了:create
procere
getdatediff
@fromdate
nvarchar(10),
@todate
nvarchar(10)
as
declare
@yeardiff
integer
declare
@monthdiff
integer
declare
@daydiff
integer
declare
@tomonth
integer
declare
@fromday
integer
declare
@today
integer
set
@yeardiff
=
ltrim(datediff(yy,
@fromdate,
@todate))
set
@monthdiff
=
ltrim(datediff(mm,
@fromdate,
@todate)%12)
set
@tomonth
=
month(cast(@todate
as
datetime))
set
@fromday
=
day(cast(@fromdate
as
datetime))
set
@today
=
day(cast(@todate
as
datetime))
if
(@today
-
@fromday)
<
0
begin
if
(@tomonth
-
1)
=
1
or
(@tomonth
-
1)
=
3
or
(@tomonth
-
1)
=
5
or
(@tomonth
-
1)
=
7
or
(@tomonth
-
1)
=
8
or
(@tomonth
-
1)
=
10
or
(@tomonth
-
1)
=
12
begin
set
@daydiff
=
31
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
else
begin
set
@daydiff
=
30
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
end
else
begin
set
@daydiff
=
@today
-
@fromday
end
select
cast(@yeardiff
as
nvarchar(10))
+
'年'
+
cast(@monthdiff
as
nvarchar(10))
+
'月'
+
cast(@daydiff
as
nvarchar(10))
+
'日'

8. SQL如何按年份月份統計

select left(convert(varchar(10),[datetime],120),7) as 月份,sum(Amount) as 總數
from 表
where [datetime]<='你輸入的時間條件'
group by left(convert(varchar(10),[datetime],120),7)

根據你的數據結果格式重新修改了下:

select cast(datepart(year,[datetime]) as varchar)+'年'+cast(datepart(month,[datetime]) as varchar)+'月' as 月份,sum(Amount) as 總數

from 表

where [datetime]<='你輸入的時間條件' and datepart(year,[datetime])=left('你輸入的時間條件',4)

group by cast(datepart(year,[datetime]) as varchar)+'年'+cast(datepart(month,[datetime]) as varchar)+'月'

9. SQL如何取年月

1、首先大部分都會使用的就是獲取當前日期了,getdate直接用。