
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),可以知道指定日期所在月份剩余天数和剩余周末天数.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)