当前位置:首页 » 编程语言 » 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直接用。