sqlserver获取最近六个月天数总和,例如现在是八月份,我要获取2-7月份天数总和

sqlserver获取最近六个月天数总和,例如现在是八月份,我要获取2-7月份天数总和,第1张

declare

@Interval int, --间隔天数

@BeginDate DateTime, --开始时间

@EndDate DateTime --结束时间

begin

set @BeginDate = DATEADD(day,-DAY(DATEADD(MONTH,-6,GETDATE()))+1,DATEADD(MONTH,-6,GETDATE()))

set @EndDate = EOMONTH(DATEADD(MONTH,-1,GETDATE()))

set @Interval = DATEDIFF(day,@BeginDate,@EndDate)

select @Interval

end

declare @sdate datetime ,@edate datetime

set @sdate = '2012/01/01 00:00:00'

set @edate = '2012/01/31 00:00:00 '

while @sdate < = @edate

begin

print @sdate

dateadd(day,1,@sdate)

end

这个只是显示出结果,如果要插入某个表格的话,

将print那行该一下应该就可以了

DECLARE @date DATE='' 

DECLARE @date_month_end_day DATE =''

SET @date='2016-09-04'

SET @date_month_end_day=DATEADD(DAY,-1,DATEADD(MONTH,1,DATEADD(DAY,1-DAY(@date),@date)))

--指定日期所在月份剩余天数和剩余周末天数

DECLARE @i INT = DAY(DATEADD(DAY,1,DAY(@date)))

DECLARE @j INT =0

WHILE @i <= DAY(@date_month_end_day)

BEGIN

    IF  DATEPART(WEEKDAY,CAST(CAST(YEAR(@date) AS VARCHAR(4))+'-'+CAST(MONTH(@date) AS VARCHAR(2))+'-'+CAST(@i AS VARCHAR(2)) AS DATE)) NOT BETWEEN 2 AND 6

SET @j=@j+1

    SET @i=@i+1

END

SELECT @date AS 输入的日期,DATEDIFF(DAY,@date,@date_month_end_day) AS 剩余天数,@j AS 剩余周末天数

1、新建一个test数据库,在数据库里创建一张data数据表。

2、在表内插入5条测试数据。

3、新建一个php文件,命名为testphp。

4、在testphp文件内,使用header()方法设置文件执行的编码为utf8,避免输出中文时产生乱码。

5、在testphp文件内,使用数据库账号、密码、名称,利用mysqli创建数据库连接,并使用set_charset()方法设置获得数据的编码为utf8。

6、在testphp文件内,编写sql语句,使用TO_DAYS()分别获得当前的天数和数据表ctime字段数据的天数,两者之差小于3天,即前三天,以此为条件查询data数据表的数据,使用query()执行sql语句,同时使用fetch_all()方法将获得的数据资源转换为二维数组。

7、在testphp文件内,使用foreach方法遍历上一步获得的二维数组,输出数据的id和姓名。

8、在浏览器运行testphp文件,查看程序执行的结果,可见,成功从数据库获得前三天的数据。

SQL时间段查询 :

ACCESS

select from table where date1<#2008-1-20# and date2>#2007-8-30#

MYSQL

select from table where date1<'2008-1-20' and date2>'2007-3-30'

也可以 :

select from table where date1 between '2008-1-20' and '2007-3-30'

其中date1,date2都是日期类型的字段。

SQL时间型查询语句:

2007年12月04日 星期二 13:54

select from jy_jjgl a ,jy_jygl b where convert(varchar(10),ashtime,120)='2007-11-27'

1显示本月第一天

SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)

select convert(datetime,convert(varchar(8),getdate(),

120)+'01',120)

2显示本月最后一天

select dateadd(day,-1,convert(datetime,convert

(varchar(8),dateadd(month,1,getdate()),120)+'01',120))

SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))

3上个月的最后一天

SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))

4本月的第一个星期一i

select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(

day,getdate()),getdate())),0)

5本年的第一天

SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)

6本年的最后一天

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))

7去年的最后一天

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))

8本季度的第一天

SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)

9本周的星期一

SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)

10查询本月的记录

select from tableName where DATEPART(mm, theDate)

=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate)

= DATEPART(yy, GETDATE())

11查询本周的记录

select from tableName where DATEPART(wk, theDate) = DATEPART

(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

12查询本季的记录 注:其中:GETDATE()是获得系统时间的函数。

select from tableName where DATEPART(qq, theDate) = DATEPART

(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

13获取当月总天数:

select DATEDIFF(dd,getdate(),DATEADD

(mm, 1, getdate()))

select datediff(day,

dateadd(mm, datediff(mm,'',getdate()), ''),

dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))

14获取当前为星期几

DATENAME(weekday, getdate())

DateDiff 函数

返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。

语法

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 函数语法中有下列命名参数:

部分 描述

interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔

Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。

Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

设置

interval 参数的设定值如下:

设置 描述

yyyy 年

q 季

m 月

y 一年的日数

d 日

w 一周的日数

ww 周

h 时

n 分钟

s 秒

firstdayofweek 参数的设定值如下:

常数 值 描述

vbUseSystem 0 使用 NLS API 设置。

vbSunday 1 星期日(缺省值)

vbMonday 2 星期一

vbTuesday 3 星期二

vbWednesday 4 星期三

vbThursday 5 星期四

vbFriday 6 星期五

vbSaturday 7 星期六

常数 值 描述

vbUseSystem 0 用 NLS API 设置。

vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。

vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。

vbFirstFullWeek 3 从第一个无跨年度的星期开始。

可以利用sql函数实现,首先获取传递过来的日期中的天数,然后减去(天数-1),即可得到第一天日期。

例如mysql:DATE_SUB($[yyyy-mm-dd], INTERVAL (DAY($[yyyy-mm-dd]) -1) DAY)

大体思路是这样的,不同的数据库sql日期函数略有不同,自己调试下吧。

SELECT day(DateSerial(Year(Date()),Month(Date())+1,1)-1) AS 当月天数;

DateSerial(Year(Date()),Month(Date())+1,1)-1 表示当月最后一天的日期

以上就是关于sqlserver获取最近六个月天数总和,例如现在是八月份,我要获取2-7月份天数总和全部的内容,包括:sqlserver获取最近六个月天数总和,例如现在是八月份,我要获取2-7月份天数总和、My sql 如何用一条语句生成整月日期并按日期排序,跪求高人、sql通过查询一个指定日期(如2016-09-04),可以知道指定日期所在月份剩余天数和剩余周末天数.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9300211.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存