sql查询本日本周本月本年的语句

合集下载

SQLServer查询今天-昨天-本周-本月的记录

SQLServer查询今天-昨天-本周-本月的记录

在统计的时候,经常会使用SQL查询今天、昨天、本月、本周的记录,我将这些常用的sql语句写在这里。

SQL查询今天的记录:datediff(day,[Datetime],getdate())=0  把Datetime换为你的相应字段;SQL查询昨天的记录:datediff(day,[Datetime],getdate())=1  把Datetime换为你的相应字段,getdate()-Datetime即为时间差。

 本月记录:SELECT * FROM 表WHERE datediff(month,[dateadd],getdate())=0 本周记录:SELECT * FROM 表WHERE datediff(week,[dateadd],getdate())=0本日记录:SELECT * FROM 表WHERE datediff(day,[dateadd],getdate())=0GetDate函数的使用方法函数参数/功能GetDate( ) 返回系统目前的日期与时间DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称更多信息请查看IT技术专栏。

sql 查询当天的记录,本月,本周的记录

sql 查询当天的记录,本月,本周的记录

sql 查询当天的记录,本月,本周的记录2010-09-07 00:27:14| 分类:默认分类| 标签:getdate datediff select interval返回字号:大中小订阅sql 查询当天的记录,本月,本周的记录sql 查询当天的记录,本月,本周的记录2006年12月27日星期三上午10:05SELECT * FROM 表WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC本月记录SELECT * FROM 表WHEREdatediff(month,[dateadd],getdate())=0本周记录当天记录SELECT * FROM 表WHEREdatediff(day,[dateadd],getdate())=0sql server中的时间函数1. 当前系统日期、时间select getdate()2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。

select datediff(day,'2004-09-01','2004-09-18') --返回:174. datepart 返回代表指定日期的指定日期部分的整数。

SELECT DATEPART(month, '2004-10-15') --返回105. datename 返回代表指定日期的指定日期部分的字符串SELECT datename(weekday, '2004-10-15') --返回:星期五6. day(), month(),year() --可以与datepart对照一下select 当前日期=convert(varchar(10),getdate(),120),当前时间=convert(varchar(8),getdate(),114)select datename(dw,'2004-10-15')select 本年第多少周=datename(week,'2004-10-15') ,今天是周几=datename(weekday,'2004-10-15')函数参数/功能GetDate( ) 返回系统目前的日期与时间DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称参数interval的设定值如下:值缩写(Sql Server)Access 和ASP 说明Year Yy yyyy 年1753 ~ 9999 Quarter Qq q 季1 ~ 4 Month Mm m 月1 ~ 12Day of year Dy y 一年的日数,一年中的第几日1-366Day Dd d 日,1-31Weekday Dw w 一周的日数,一周中的第几日1-7Week Wk ww 周,一年中的第几周0 ~ 51Hour Hh h 时0 ~ 23Minute Mi n 分钟0 ~ 59Second Ss s 秒0 ~ 59Millisecond Ms - 毫秒0 ~ 999access 和asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似举例:1.GetDate() 用于sql server :select GetDate()2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为514592 秒DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为5 天3.DatePart('w','2005-7-25 22:56:32')返回值为2 即星期一(周日为1,周六为7)DatePart('d','2005-7-25 22:56:32')返回值为25即25号DatePart('y','2005-7-25 22:56:32')返回值为206即这一年中第206天DatePart('yyyy','2005-7-25 22:56:32')返回值为2005即2005年SQL 查询当天,本月,本周的记录SELECT * FROM 表WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE (), 111) ORDER BY dateandtime DESC本月记录SELECT * FROM 表WHERE datediff(month,[dateadd],getdate())=0本周记录SELECT * FROM 表WHERE datediff(week,[dateadd],getdate())=0当天记录SELECT * FROM 表WHERE datediff(day,[dateadd],getdate())=0sql server中的时间函数1. 当前系统日期、时间select getdate()2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。

使用SQL语句查询日期(当月天数,当月第一天,当月最后一天,本年最后一天,当月第一个星期)。。。

使用SQL语句查询日期(当月天数,当月第一天,当月最后一天,本年最后一天,当月第一个星期)。。。

使⽤SQL语句查询⽇期(当⽉天数,当⽉第⼀天,当⽉最后⼀天,本年最后⼀天,当⽉第⼀个星期)。

取某⽉天数:select day(dateadd(month,1,'2012-02-01')-1)--当⽉天数select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0)))---当⽉第⼀天select dateadd(d,-day(getdate())+1,getdate())---当⽉最后⼀天select dateadd(d,-1,dateadd(m,1,dateadd(d,-day(getdate())+1,getdate()) ))--本年最后⼀天select dateadd(d,-day(getdate()),dateadd(m,12,getdate()))--当⽉第⼀个星期⼀SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '')SQL Server ⽇期算法:本⽉的第⼀天:select dateadd(mm,datediff(mm,0,getdate()),0)本周的星期⼀:select dateadd(wk,datediff(wk,0,getdate()),0)⼀年的第⼀天:select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)季度的第⼀天:SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)当天的零时:SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)上个⽉的最后⼀天:本⽉第⼀天减2ms.SELECT dateadd(ms,-2,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))本⽉的最后⼀天:SELECT dateadd(ms,-2,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))本⽉的第⼀个星期⼀去掉时分秒:DATEADD(day, DATEDIFF(day,0,getdate()), 0)显⽰星期⼏:select datename(weekday,getdate())如何取得某个⽉的天数:SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))判断是否闰年:SELECT caseday(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when28then'平年'else'闰年'end⼀个季度多少天:declare@mtinyint,@timesmalldatetimeselect@m=month(getdate()) select @m=case when @mbetween 1 and 3 then 1 when @m between 4 and 6 then 4 when @m between 7 and 9 then 7else10 endselect @time=datename(year,getdate())+ --A. 季度的第⼀天SELECT CONVERT(datetime, CONVERT(char(8), DATEADD(Month, DATEPART(Quarter,@dt)*3-Month(@dt)-2, @dt),120)+'1')--B. 季度的最后⼀天(CASE判断法)SELECT CONVERT(datetime,CONVERT(char(8),DATEADD(Month, DATEPART(Quarter,@dt)*3-Month(@dt), @dt),120) +CASE WHEN DATEPART(Quarter,@dt) in(1,4) THEN '31'ELSE '30' END)--C. 季度的最后⼀天(直接推算法)SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,@dt)*3-Month(@dt), @dt),120)+'1')⼀、sql server⽇期时间函数1. 当前系统⽇期、时间select getdate()2. dateadd 在向指定⽇期加上⼀段时间的基础上,返回新的 datetime 值例如:向⽇期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-1700:00:00.0003. datediff 返回跨两个指定⽇期的⽇期和时间边界数select datediff(day,'2004-09-01','2004-09-18') --返回:174. datepart 返回代表指定⽇期的指定⽇期部分的整数。

sql 日期的计算方法

sql 日期的计算方法
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)
--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
--B. 星期一做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

sql语句获取今天、昨天、近7天、本周、上周、本月、上月、半年数据

sql语句获取今天、昨天、近7天、本周、上周、本月、上月、半年数据

sql语句获取今天、昨天、近7天、本周、上周、本⽉、上⽉、半年数据01话说有⼀⽂章表article,存储⽂章的添加⽂章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的⽂章总数并且按照时间从⼤到⼩排序,则查询语句如下:02031select * from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d');04或者:05061select * from `article` where to_days(date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d')) = to_days(now());07假设以上表的add_time字段的存储类型是DATETIME类型或者TIMESTAMP类型,则查询语句也可按如下写法:0809查询今天的信息记录:10111select * from `article` where to_days(`add_time`) = to_days(now());12查询昨天的信息记录:13141select * from `article` where to_days(now()) – to_days(`add_time`) <= 1;15查询近7天的信息记录:16171select * from `article` where date_sub(curdate(), INTERVAL 7 DAY) <= date(`add_time`);18查询近30天的信息记录:19201select * from `article` where date_sub(curdate(), INTERVAL 30 DAY) <= date(`add_time`);21查询本⽉的信息记录:22231select * from `article` where date_format(`add_time`, ‘%Y%m') = date_format(curdate() , ‘%Y%m');24查询上⼀⽉的信息记录:25261select * from `article` where period_diff(date_format(now() , ‘%Y%m') , date_format(`add_time`, ‘%Y%m')) =1;27对上⾯的SQL语句中的⼏个函数做⼀下分析:2829(1)to_days3031就像它的名字⼀样,它是将具体的某⼀个⽇期或时间字符串转换到某⼀天所对应的unix时间戳,如:323301 mysql> select to_days('2010-11-22 14:39:51');3402 +--------------------------------+3503 | to_days('2010-11-22 14:39:51') |3604 +--------------------------------+3705 | 734463 |3806 +--------------------------------+39074008 mysql> select to_days('2010-11-23 14:39:51');4109 +--------------------------------+4210 | to_days('2010-11-23 14:39:51') |4311 +--------------------------------+4412 | 734464 |4513 +--------------------------------+46可以看出22⽇与23⽇的差别就是,转换之后的数增加了1,这个粒度的查询是⽐较粗糙的,有时可能不能满⾜我们的查询要求,那么就需要使⽤细粒度的查询⽅法str_to_date函数了,下⾯将分析这个函数的⽤法。

sql 查询本年、本月、本日记录的语句

sql 查询本年、本月、本日记录的语句

sql 查询本年、本月、本日记录的语句,附SQL日期函数sql 查询本年、本月、本日记录的语句,附SQL日期函数,学习sql的朋友可以参考下。

查询本日记录SELECT * FROM messages WHERE CONVERT(Nvarchar, CreateDate, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY CreateDate DESCSELECT * FROM 表 WHERE datediff(day,列名,getdate())=0查询本年SELECT count(*) FROM messages WHERE datediff(year,CreateDate,getdate())=0查询本月SELECT count(*) FROM messages WHERE datediff(month,CreateDate,getdate())=0本周记录SELECT * FROM 表名 WHERE datediff(week,列名,getdate())=0SQL 日期函数1. 当前系统日期、时间select getdate()2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15′) –返回:2004-10-17 00:00:00.0003. datediff 返回跨两个指定日期的日期和时间边界数。

select datediff(day,'2004-09-01′,'2004-09-18′) –返回:174. datepart 返回代表指定日期的指定日期部分的整数。

SELECT DATEPART(month, '2004-10-15′) –返回 105. datename 返回代表指定日期的指定日期部分的字符串SELECT datename(weekday, '2004-10-15′) –返回:星期五6. day(), month(),year() –可以与datepart对照一下select 当前日期=convert(varchar(10),getdate(),120),当前时间=convert(varchar(8),getdate(),114)select datename(dw,'2004-10-15′)select 本年第多少周=datename(week,'2004-10-15′),今天是周几=datename(weekday,'2004-10-15′)函数参数/功能GetDate( ) 返回系统目前的日期与时间DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称参数 interval的设定值如下:值缩写(Sql Server) Access 和 ASP 说明Year Yy yyyy 年 1753 ~ 9999Quarter Qq q 季 1 ~ 4Month Mm m 月1 ~ 12Day of year Dy y 一年的日数,一年中的第几日 1-366Day Dd d 日,1-31Weekday Dw w 一周的日数,一周中的第几日 1-7Week Wk ww 周,一年中的第几周 0 ~ 51Hour Hh h 时0 ~ 23Minute Mi n 分钟0 ~ 59Second Ss s 秒 0 ~ 59Millisecond Ms - 毫秒 0 ~ 999access 和asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似举例:1.GetDate() 用于sql server :select GetDate()2.DateDiff('s','2005-07-20′,'2005-7-25 22:56:32′)返回值为 514592 秒DateDiff('d','2005-07-20′,'2005-7-25 22:56:32′)返回值为 5 天3.DatePart('w','2005-7-25 22:56:32′)返回值为 2 即星期一(周日为1,周六为7)DatePart('d','2005-7-25 22:56:32′)返回值为 25即25号DatePart('y','2005-7-25 22:56:32′)返回值为 206即这一年中第206天DatePart('yyyy','2005-7-25 22:56:32′)返回值为 2005即2005年详细出处参考:/article/27562.htm。

SQL语句获取日期

SQL语句获取日期

SQL语句获取日期核心提示:本教程为大家介绍SQL语句如何获取特定的日期。

SQL语句获取特定日期1.一个月第一天的Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)2.本周的星期一Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)3.一年的第一天Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)4.季度的第一天Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)5.当天的半夜Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)6.上个月的最后一天Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))7.去年的最后一天Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))8.本月的最后一天Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))9.本年的最后一天Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))10.本月的第一个星期一select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 返回当前日期和时间通过函数GETDATE(),你可以获得当前的日期和时间。

函数GETDATE()可以用来作为DATEDIME型字段的缺省值。

这对插入记录时保存当时的时间是有用的。

要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:Create TABLE site_log (username VARCHAR(40),useractivity VARCHAR(100),entrydate DATETIME DEFAULT GETDATE())转换日期和时间函数GETDATE()的返回值在显示时只显示到秒。

SQL周、日、月、年数据统计

SQL周、日、月、年数据统计

SQL周、⽇、⽉、年数据统计本⽂只是记录在项⽬中⽤到的统计的SQL语句,记⼀笔以防忘了///<summary>///获取统计数据///</summary>///<param name="CKEY">店⾯ckey</param>///<param name="type">统计类型(⽇、周、⽉、年)</param>///<returns></returns>[WebMethod(true)]public static string GetData3(string CKEY, string type){StringBuilder strSql = new StringBuilder();#region SQL语句if (type == "0"){#region⽇strSql.AppendFormat(" WITH WeekDate ");strSql.AppendFormat(" AS ( SELECT DATEADD(d, -DAY(GETDATE()) + 1, GETDATE()) AS riqi ");strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT riqi + 1 FROM WeekDate ");strSql.AppendFormat(" WHERE riqi + 1 <= ( SELECT DATEADD(d, -DAY(GETDATE()), DATEADD(m, 1, GETDATE())) ) ");strSql.AppendFormat(" ) ");strSql.AppendFormat(" SELECT CONVERT(CHAR(8), a.riqi, 112) AS ⽇ ,DAY (CONVERT(CHAR(8), a.riqi, 112)) AS DDay, ");strSql.AppendFormat(" ISNULL(tbB.⽇成交量, 0) AS ⽇成交量 , ");strSql.AppendFormat(" CASE WHEN CONVERT(CHAR(8), a.riqi, 112) > CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN NULL ");strSql.AppendFormat(" WHEN CONVERT(CHAR(8), a.riqi, 112) <= CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN ISNULL(tbB.⽇成交量, 0) ");strSql.AppendFormat(" END AS ⽇成交数量 , ");strSql.AppendFormat(" tbB.⽇实收⾦额 , ");strSql.AppendFormat(" CASE WHEN CONVERT(CHAR(8), a.riqi, 112) > CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN NULL ");strSql.AppendFormat(" WHEN CONVERT(CHAR(8), a.riqi, 112) <= CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN ISNULL(tbB.⽇实收⾦额, 0) ");strSql.AppendFormat(" END AS ⽇实收⾦额2 ");strSql.AppendFormat(" FROM WeekDate a ");strSql.AppendFormat(" LEFT JOIN ( SELECT ( SELECT COUNT(1) ");strSql.AppendFormat(" FROM dbo.CustomerBase base ");strSql.AppendFormat(" WHERE CKEY = '{0}' ", CKEY);strSql.AppendFormat(" AND " + impomo.TotalConsumptionMon + " > 0 ");strSql.AppendFormat(" AND TargetDate = cus.TargetDate ");strSql.AppendFormat(" ) ⽇成交量 , ");strSql.AppendFormat(" ISNULL(( SELECT SUM(Total) ");strSql.AppendFormat(" FROM ( SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total "); strSql.AppendFormat(" FROM PaymentContent AS pay ");strSql.AppendFormat(" WHERE PayDate = cus.TargetDate ");strSql.AppendFormat(" AND pay.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(RecMoney, 0))) AS Total ");strSql.AppendFormat(" FROM dbo.CardRecharge8 AS recharge ");strSql.AppendFormat(" WHERE RechargDate = cus.TargetDate ");strSql.AppendFormat(" AND recharge.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total ");strSql.AppendFormat(" FROM dbo.PaymentSwimming AS payswim ");strSql.AppendFormat(" WHERE PayDate = cus.TargetDate ");strSql.AppendFormat(" AND payswim.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( wp1 + wp2 + wp3 + wp4 + wp5 ), 0))) AS Total "); strSql.AppendFormat(" FROM WarePaymentContent AS ware ");strSql.AppendFormat(" WHERE PayDate = cus.TargetDate ");strSql.AppendFormat(" AND ware.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" ) B ");strSql.AppendFormat(" ), 0) AS ⽇实收⾦额 , ");strSql.AppendFormat(" TargetDate ⽇ ");strSql.AppendFormat(" FROM dbo.CustomerBase cus ");strSql.AppendFormat(" WHERE YEAR(TargetDate) = YEAR(GETDATE()) ");strSql.AppendFormat(" AND MONTH(TargetDate) = MONTH(GETDATE()) ");strSql.AppendFormat(" GROUP BY TargetDate ");strSql.AppendFormat(" ) AS tbB ON CONVERT(CHAR(8), a.riqi, 112) = tbB.⽇ ");#endregion}else if (type == "1"){#region周strSql.AppendFormat(" WITH WeekDate ");strSql.AppendFormat(" AS ( SELECT DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 0) AS riqi ");strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT riqi + 1 FROM WeekDate ");strSql.AppendFormat(" WHERE riqi + 1 <= ( SELECT DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 6) ) ");strSql.AppendFormat(" ) ");strSql.AppendFormat(" SELECT CONVERT(CHAR(8), a.riqi, 112) AS ⽇ , ");strSql.AppendFormat(" DATENAME(weekday,CONVERT(CHAR(8), a.riqi, 112)) DDay, ");strSql.AppendFormat(" ISNULL(tbB.⽇成交量, 0) AS ⽇成交量 , ");strSql.AppendFormat(" CASE WHEN CONVERT(CHAR(8), a.riqi, 112) > CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN NULL ");strSql.AppendFormat(" WHEN CONVERT(CHAR(8), a.riqi, 112) <= CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN ISNULL(tbB.⽇成交量, 0) ");strSql.AppendFormat(" END AS ⽇成交数量 , ");strSql.AppendFormat(" tbB.⽇实收⾦额 , ");strSql.AppendFormat(" CASE WHEN CONVERT(CHAR(8), a.riqi, 112) > CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN NULL ");strSql.AppendFormat(" WHEN CONVERT(CHAR(8), a.riqi, 112) <= CONVERT(CHAR(8), GETDATE(), 112) ");strSql.AppendFormat(" THEN ISNULL(tbB.⽇实收⾦额, 0) ");strSql.AppendFormat(" END AS ⽇实收⾦额2 ");strSql.AppendFormat(" FROM WeekDate a ");strSql.AppendFormat(" LEFT JOIN ( SELECT ( SELECT COUNT(1) ");strSql.AppendFormat(" FROM dbo.CustomerBase base ");strSql.AppendFormat(" WHERE CKEY = '{0}'", CKEY);strSql.AppendFormat(" AND " + impomo.TotalConsumptionMon + " > 0 ");strSql.AppendFormat(" AND TargetDate = cus.TargetDate ");strSql.AppendFormat(" ) ⽇成交量 , ");strSql.AppendFormat(" ISNULL(( SELECT SUM(Total) ");strSql.AppendFormat(" FROM ( SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total "); strSql.AppendFormat(" FROM PaymentContent AS pay ");strSql.AppendFormat(" WHERE PayDate = cus.TargetDate ");strSql.AppendFormat(" AND pay.CKEY = '{0}'", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(RecMoney, 0))) AS Total ");strSql.AppendFormat(" FROM dbo.CardRecharge8 AS recharge ");strSql.AppendFormat(" WHERE RechargDate = cus.TargetDate ");strSql.AppendFormat(" AND recharge.CKEY = '{0}'", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total ");strSql.AppendFormat(" FROM dbo.PaymentSwimming AS payswim ");strSql.AppendFormat(" WHERE PayDate = cus.TargetDate ");strSql.AppendFormat(" AND payswim.CKEY = '{0}'", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( wp1 + wp2 + wp3 + wp4 + wp5 ), 0))) AS Total "); strSql.AppendFormat(" FROM WarePaymentContent AS ware ");strSql.AppendFormat(" WHERE PayDate = cus.TargetDate ");strSql.AppendFormat(" AND ware.CKEY = '{0}'", CKEY);strSql.AppendFormat(" ) B ");strSql.AppendFormat(" ), 0) AS ⽇实收⾦额 , ");strSql.AppendFormat(" TargetDate ⽇ ");strSql.AppendFormat(" FROM dbo.CustomerBase cus ");strSql.AppendFormat(" WHERE DATEPART(wk, TargetDate) = DATEPART(wk, GETDATE()) ");strSql.AppendFormat(" AND DATEPART(yy, TargetDate) = DATEPART(yy, GETDATE()) ");strSql.AppendFormat(" GROUP BY TargetDate ");strSql.AppendFormat(" ) AS tbB ON CONVERT(CHAR(8), a.riqi, 112) = tbB.⽇ ");#endregion}else if (type == "2"){#region⽉strSql.AppendFormat("SELECT YearMonth.⽉ , ");strSql.AppendFormat(" tb.⽉成交量 , ");strSql.AppendFormat(" CASE WHEN YearMonth.⽉ > MONTH(GETDATE()) THEN NULL ");strSql.AppendFormat(" WHEN YearMonth.⽉ <= MONTH(GETDATE()) THEN ISNULL(tb.⽉成交量, 0) ");strSql.AppendFormat(" END AS ⽉成交数量 , ");strSql.AppendFormat(" tb.⽉实收总⾦额 , ");strSql.AppendFormat(" CASE WHEN YearMonth.⽉ > MONTH(GETDATE()) THEN NULL ");strSql.AppendFormat(" WHEN YearMonth.⽉ <= MONTH(GETDATE()) THEN ISNULL(tb.⽉实收总⾦额, 0) ");strSql.AppendFormat(" END AS ⽉实收总⾦额2 ");strSql.AppendFormat(" FROM ( SELECT 1 AS ⽉ UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 ");strSql.AppendFormat(" UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12 ");strSql.AppendFormat(" ) AS YearMonth ");strSql.AppendFormat(" LEFT JOIN ( SELECT ( SELECT COUNT(1) ");strSql.AppendFormat(" FROM dbo.CustomerBase base ");strSql.AppendFormat(" WHERE CKEY = '{0}' ", CKEY);strSql.AppendFormat(" AND " + impomo.TotalConsumptionMon + " > 0 ");strSql.AppendFormat(" AND MONTH(TargetDate) = MONTH(cus.TargetDate) ");strSql.AppendFormat(" ) ⽉成交量 , ");strSql.AppendFormat(" ISNULL(( SELECT SUM(Total) ");strSql.AppendFormat(" FROM ( SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total ");strSql.AppendFormat(" FROM PaymentContent AS pay ");strSql.AppendFormat(" WHERE MONTH(PayDate) = MONTH(cus.TargetDate) ");strSql.AppendFormat(" AND pay.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(RecMoney, 0))) AS Total ");strSql.AppendFormat(" FROM dbo.CardRecharge8 AS recharge ");strSql.AppendFormat(" WHERE MONTH(RechargDate) = MONTH(cus.TargetDate) ");strSql.AppendFormat(" AND recharge.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total "); strSql.AppendFormat(" FROM dbo.PaymentSwimming AS payswim ");strSql.AppendFormat(" WHERE MONTH(PayDate) = MONTH(cus.TargetDate) ");strSql.AppendFormat(" AND payswim.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( wp1 + wp2 + wp3 + wp4 + wp5 ), 0))) AS Total "); strSql.AppendFormat(" FROM WarePaymentContent AS ware ");strSql.AppendFormat(" WHERE MONTH(PayDate) = MONTH(cus.TargetDate) ");strSql.AppendFormat(" AND ware.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" ) B ");strSql.AppendFormat(" ), 0) AS ⽉实收总⾦额 , ");strSql.AppendFormat(" MONTH(TargetDate) ⽉ ");strSql.AppendFormat(" FROM dbo.CustomerBase cus ");strSql.AppendFormat(" WHERE YEAR(TargetDate) = YEAR(GETDATE()) ");strSql.AppendFormat(" GROUP BY MONTH(cus.TargetDate) ");strSql.AppendFormat(" ) AS tb ON YearMonth.⽉ = tb.⽉ ");#endregion}else if (type == "3"){#region年strSql.AppendFormat("SELECT ( SELECT COUNT(1) ");strSql.AppendFormat(" FROM dbo.CustomerBase base ");strSql.AppendFormat(" WHERE CKEY = '{0}' ", CKEY);strSql.AppendFormat(" AND " + impomo.TotalConsumptionMon + " > 0 ");strSql.AppendFormat(" AND YEAR(TargetDate) = YEAR(cus.TargetDate) ");strSql.AppendFormat(" ) 年成交量 , ");strSql.AppendFormat(" CONVERT(NVARCHAR(20),CONVERT(DECIMAL(18,2),ISNULL(( SELECT SUM(Total) ");strSql.AppendFormat(" FROM ( SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total ");strSql.AppendFormat(" FROM PaymentContent AS pay ");strSql.AppendFormat(" WHERE YEAR(PayDate) = YEAR(cus.TargetDate) ");strSql.AppendFormat(" AND pay.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(RecMoney, 0))) AS Total ");strSql.AppendFormat(" FROM dbo.CardRecharge8 AS recharge ");strSql.AppendFormat(" WHERE YEAR(RechargDate) = YEAR(cus.TargetDate) ");strSql.AppendFormat(" AND recharge.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( pc1 + pc2 + pc3 + pc4 + pc5 ), 0))) AS Total ");strSql.AppendFormat(" FROM dbo.PaymentSwimming AS payswim ");strSql.AppendFormat(" WHERE YEAR(PayDate) = YEAR(cus.TargetDate) ");strSql.AppendFormat(" AND payswim.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" UNION ALL ");strSql.AppendFormat(" SELECT SUM(CONVERT(FLOAT, ISNULL(( wp1 + wp2 + wp3 + wp4 + wp5 ), 0))) AS Total ");strSql.AppendFormat(" FROM WarePaymentContent AS ware ");strSql.AppendFormat(" WHERE YEAR(PayDate) = YEAR(cus.TargetDate) ");strSql.AppendFormat(" AND ware.CKEY = '{0}' ", CKEY);strSql.AppendFormat(" ) B ");strSql.AppendFormat(" ), 0))) AS 年实收总⾦额 , ");strSql.AppendFormat(" YEAR(TargetDate) 年 ");strSql.AppendFormat(" FROM dbo.CustomerBase cus ");strSql.AppendFormat(" GROUP BY YEAR(TargetDate) ");#endregion}#endregionDataTable table = DBHelper.GetDateTable(strSql.ToString());string rs = Newtonsoft.Json.JsonConvert.SerializeObject(table);return rs;}。

SQL处理各种日期时间

SQL处理各种日期时间

SQL--本周第一天SELECT DATEADD(Day,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate())--orselect dateadd(wk, datediff(wk,0,getdate()), 0)--本周第一天select dateadd(wk, datediff(wk,0,getdate()), 6)--上月第一天SELECTCONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)--上月最后一天SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+' 23:59:59'--本月第一天select dateadd(dd,-datepart(dd,getdate())+1,getdate())--本月最后一天select dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate()))--本月天数select datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()), dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())))--orselect datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))--下月第一天select dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))--下月最后一天SELECT CONVERT(CHAR(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+' 23:59:59'--季度第一天SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)--季度最后一天(直接推算法)SELECTDATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,getdate())*3-Month(g etdate()),getdate()),120)+'1')--季度的最后一天(CASE判断法)select DATEADD(Month,DATEPART(Quarter,getdate())*3-Month(getdate()),getdate())--本月第一个星期一SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '')--去年最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))--今年第一天SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)--今年最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,0))--指定日期所在周的任意一天SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)--5.指定日期所在周的任意星期几--A. 星期天做为一周的第1天SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)--B. 星期一做为一周的第1天SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)---周内的第几日select datepart(weekday,getdate()) as 周内的第几日--年内的第几周select datepart(week,getdate()) as 年内的第几周--年内的第几季select datepart(quarter,getdate()) as 年内的第几季--判断某天是当月的第几周的sql函数CREATE FUNCTION WeekOfMonth(@day datetime)RETURNS intASbegin----declare @day datetimedeclare @num intdeclare @Start datetimedeclare @dd intdeclare @dayofweek char(8)declare @dayofweek_num char(8)declare @startWeekDays int---set @day='2009-07-05'if datepart(dd,@day)=1return 1elseset @Start= (SELECT DATEADD(mm, DATEDIFF(mm,0,@day), 0)) --一个月第一天的set @dayofweek= (datename(weekday,@Start)) ---得到本月第一天是周几set @dayofweek_num=(select (case @dayofweek when '星期一' then 2when '星期二' then 3when '星期三' then 4when '星期四' then 5when '星期五' then 6when '星期六' then 7when '星期日' then 1end))set @dayofweek_num= 7-@dayofweek_num+1 ---得到本月的第一周一共有几天---print @dayofweek_numset @dd=datepart(dd,@day) ----得到今天是这个月的第几天--print @ddif @dd<=@dayofweek_num --小于前一周的天数return 1elseset @dd=@dd-@dayofweek_numif @dd % 7=0beginset @num=@dd / 7return @num+1endelse --if @dd % 7<>0set @num=@dd / 7set @num=@num+1+1return @numend--常用日期的视图SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS today, REPLACE(CONVERT(varchar(8), GETDATE(), 108), ':', '') AS time,REPLACE(REPLACE(REPLACE(CONVERT(varchar, GETDATE(), 120), '-', ''), ' ', ''), ':', '') AS all_date, CONVERT(varchar(12), GETDATE(), 112) AS date,YEAR(GETDATE()) AS year, MONTH(GETDATE()) AS month, DAY(GETDATE()) AS day, CONVERT(varchar(8), DATEADD(d, - 1, GETDATE()), 112)AS yestaday, CONVERT(varchar(8), DATEADD(d, 1, GETDATE()), 112) AS tomorrowFROM/*T-SQL: 17 个与日期时间相关的自定义函数(UDF),周日作为周的最后一天,均不受@@DateFirst、语言版本影响提示:(@@Datefirst + datepart(weekday,@Date)) % 7 判断周几是最保险的! 与@@DateFirst 无关,与语言版本无关@@DateFirst 可能会导致datepart(weekday,@Date) 不一样!无论@@DateFirst 等于几,无论是什么语言版本的SQL Server 下面永远恒成立!(@@Datefirst + datepart(weekday,@Date))%7 : 2、3、4、5、6、0、1 分别代表周一到周日-- */create function udf_GetAge(@StartDate datetime,@EndDate datetime)returns integer-- 返回精确年龄select dbo.udf_GetAge('1949-10-01',getdate())beginreturn datediff(year,@StartDate,@EndDate)- case when datediff(day,dateadd(year,datediff(year,@StartDate,@EndDate),@StartDate),@EndDate) >= 0then 0else1endendgocreate function udf_DaysOfYearByDate(@Date datetime)returns integer-- 返回年的天数可判断平(365)、润(366) 年beginreturn datediff(day,dateadd(year,datediff(year,0,@Date),0),dateadd(year,datediff(year,0,@Date) + 1,0))endgocreate function udf_DaysOfYear(@Year integer)returns integer-- 返回年的天数可判断平(365)、润(366) 年beginreturn datediff(day,dateadd(year,@year - year(0),0),dateadd(year,@year - year(0) + 1,0))endgocreate function udf_HalfDay(@Date datetime)returns datetime-- 返回@Date 是上午返回@Date 的零点,@Date 是下午返回@Date 的十二点beginreturn case when datepart(hour,@Date) < 12then dateadd(day,datediff(day,0,@Date),0) --上午归到零点elsedateadd(hour,12,dateadd(day,datediff(day,0,@Date),0)) --下午归到十二点endendgocreate function udf_WeekDiff(@StartDate datetime,@EndDate datetime)returns integer-- 返回[@StartDate , @EndDate] 之间周数周日是当周的最后一天beginreturn datediff(week,@StartDate,@EndDate) -- + 1+ case when (@@Datefirst + datepart(weekday,@StartDate)) % 7 = 1then 1elseend- case when (@@Datefirst + datepart(weekday,@EndDate)) % 7 = 1then 1else 0endendgocreate function udf_WeekOfMonth(@Date datetime)-- 返回@Date 是所在月的第几周周日是当周的最后一天returns integerbeginreturn datediff(week,case when (@@Datefirst + datepart(weekday,dateadd(month,datediff(month,0,@Date),0))) % 7 = 1then dateadd(month,datediff(month,0,@Date),0) - 1elsedateadd(month,datediff(month,0,@Date),0)end,case when (@@Datefirst + datepart(weekday,@Date)) % 7 = 1then @Date-1else @Date)end--流水号编码方式--现实生活中的流水帐号的格式有五花八门,本来主要探讨一种比较普遍的格式2位字符串+4位年月日期+4位递增数字(如MA2009090001),其他格式都不是问题。

SQL语句获取特定日期

SQL语句获取特定日期

SQL语句获取特定日期1.一个月第一天的Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)2.本周的星期一Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)3.一年的第一天Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)4.季度的第一天Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)5.当天的半夜Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)6.上个月的最后一天Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))7.去年的最后一天Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))8.本月的最后一天Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))9.本年的最后一天Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))10.本月的第一个星期一select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)返回当前日期和时间通过函数GETDATE(),你可以获得当前的日期和时间。

函数GETDATE()可以用来作为DATEDIME 型字段的缺省值。

这对插入记录时保存当时的时间是有用的。

要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:Create TABLE site_log (username VARCHAR(40),useractivity VARCHAR(100),entrydate DATETIME DEFAULT GETDATE())转换日期和时间函数GETDATE()的返回值在显示时只显示到秒。

SQL语句统计每天、每月、每年的数据

SQL语句统计每天、每月、每年的数据

1.//按天统计2.select‎count(dataid‎) as 每天操作数量‎, sum()3.from4.where5.group by trunc(create‎t ime, 'DD'))6.//按自然周统计‎7.select‎to_cha‎r(date,'iw'),sum()8.from9.where10.group by to_cha‎r(date,'iw')11.//按自然月统计‎12.select‎to_cha‎r(date,'mm'),sum()13.from14.where15.group by to_cha‎r(date,'mm')16.//按季统计17.select‎to_cha‎r(date,'q'),sum()18.from19.where20.group by to_cha‎r(date,'q')21.//按年统计22.select‎to_cha‎r(date,'yyyy'),sum()23.from24.where25.group by to_cha‎r(date,'yyyy')SQL语句统‎计每天、每月、每年的数据1、每年select‎year(ordert‎i me) 年,sum(Total) 销售合计from 订单表group by year(ordert‎i me)2、每月select‎year(ordert‎i me) 年,month(ordert‎i me) 月,sum(Total) 销售合计from 订单表group by year(ordert‎i me),month(ordert‎i me3、每日select‎year(ordert‎i me) 年,month(ordert‎i me) 月,day(ordert‎i me) 日,sum(Total) 销售合计from 订单表group by year(ordert‎i me),month(ordert‎i me),day(ordert‎i me)另外每日也可‎以这样:select‎conver‎t(char(8),ordert‎i me,112) dt,sum(Total) 销售合计from 订单表group by conver‎t(char(8),ordert‎i me,112)sql题如何统计查询‎一个月中每天‎的记录怎么写啊?写出来啊!比如说要查2‎010年3月‎份每天的记录‎提问者:Java_T‎r avler‎- 一级最佳答案select‎count(*),substr‎(t.date,1,10) from table t where t.date like '2010-03%' group by substr‎(t.date,1,10)这里date‎的格式是YY‎Y Y-mm-ddhh:mm:sssql数据分月统计‎,表中只有每天‎的数据,现在要求求一‎年中每个月的‎统计数据(一条sql)SELECT‎MONTH ( 那个日期的字‎段),SUM( 需要统计的字‎段,比如销售额什‎么的)FROM表WHEREYEAR ( 那个日期的字‎段) = 2010 -- 这里假设你要‎查2010年的‎每月的统计。

mysql查询今天,昨天,本月,今年,本季度,上一年等的sql语句编写(全)

mysql查询今天,昨天,本月,今年,本季度,上一年等的sql语句编写(全)

mysql查询今天,昨天,本⽉,今年,本季度,上⼀年等的sql语句编写(全)-- 今天SELECT 【想要的字段】 FROM 【表名】 WHERETO_DAYS(【时间字段名】) =TO_DAYS(now());-- 昨天SELECT 【想要的字段】 FROM 【表名】 WHERE TO_DAYS( NOW( ) ) - TO_DAYS(【时间字段名】) = 1;-- 近七天SELECT 【想要的字段】 FROM 【表名】 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <=DATE(【时间字段名】);-- 本周内SELECT 【想要的字段】 FROM 【表名】 WHERE YEARWEEK(DATE_FORMAT(【时间字段名】,'%Y-%m-%d')) = YEARWEEK(now());-- 上⼀周SELECT 【想要的字段】 FROM 【表名】 WHERE YEARWEEK(DATE_FORMAT(【时间字段名】,'%Y-%m-%d')) = YEARWEEK(now())-1;-- 30天内注意这个不是本⽉是从当天起向前推30天SELECT 【想要的字段】 FROM 【表名】 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <=DATE(【时间字段名】);-- 本⽉SELECT 【想要的字段】 FROM 【表名】 WHERE DATE_FORMAT( 【时间字段名】, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );-- 上⼀个⽉SELECT 【想要的字段】 FROM 【表名】 WHERE PERIOD_DIFF( DATE_FORMAT( now( ) , '%Y%m' ) , DATE_FORMAT( 【时间字段名】, '%Y%m' ) ) =1; -- 本季度SELECT 【想要的字段】 FROM 【表名】 WHERE QUARTER(【时间字段名】)=QUARTER(now());-- 上⼀季度SELECT 【想要的字段】 FROM 【表名】 WHERE QUARTER(【时间字段名】)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));-- 本年度SELECT 【想要的字段】 FROM 【表名】 WHERE YEAR(【时间字段名】)=YEAR(NOW());-- 上⼀年度SELECT 【想要的字段】 FROM 【表名】 WHEREYEAR(【时间字段名】)=YEAR(date_sub(now(),interval 1YEAR));下⾯是mysql的函数说明:TO_DAYS() 将⽇期参数返回转换为天,给定⼀个⽇期date,返回⼀个⽇期号码(⾃0年以来的天数)。

报表测试必备时间查询SQL汇总

报表测试必备时间查询SQL汇总

报表测试必备时间查询SQL汇总1、背景背景:测试报表时,经常涉及到不同时间段的数据查询,那么此时我们需借助SQL语句进⼊数据库查询,⽐对界⾯统计的数据是否⼀致。

常⽤的时间段查询有:当天,昨天,近7天,近30天,本⽉,当⽉...等.2、时间查询SQL语句【⼀】查询当天语句语句1:SELECT * FROM 表名 WHERE 时间字段名='当前⽇期';--其中时间字段名即是表中对应存在的时间字段语句2:SELECT * FROM 表名 WHERE to_days(`时间字段名`) = to_days(now());【⼆】查询昨天语句语句1:SELECT * FROM 表名 WHERE 时间字段= '昨天⽇期';语句2:SELECT * FROM 表名 WHERE to_days(now())-to_days(`时间字段`) = 1;【三】查询近7天语句语句1:SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段) ;【四】查询近30天语句语句1:SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名);【五】查询本⽉语句语句1:SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );【六】查询上个⽉语句语句1:Select * from 表名 where 时间字段名>='上⽉第⼀天⽇期' and 时间字段名<='上⽉最后⼀天⽇期';语句2:Select * from 表名 where 时间字段名 LIKE '2020-05%';【七】查询上周语句语句1:Select * from 表名 where YEARWEEK(date_format(`时间字段名`,'%Y-%m-%d')) = YEARWEEK(now())-1;【⼋】查询截⽌当前本⽉语句语句1:Select * from 表名 where date_format(`时间字段名`, '%Y%m') = date_format(curdate() , '%Y%m');。

SQL语句中的日期查询

SQL语句中的日期查询

SQL语句中的⽇期查询SQL语句中的⽇期查询----YYYY--当前年份第⼀天的前⼀天SELECT TRUNC(SYSDATE,'yyyy') -1+8/24FROM DUAL---2019/12/31 上午 08:00:00--当前年份的第⼀天SELECT TRUNC(SYSDATE,'yyyy') +8/24FROM DUAL---2020/01/01 上午 08:00:00----MM--当前⽉的第⼀天SELECT TRUNC(SYSDATE,'MM') -1+8/24FROM DUAL---2020/04/30 上午 08:00:00--当前⽉的第⼀天的前⼀天SELECT TRUNC(SYSDATE,'MM') +8/24FROM DUAL---2020/05/01 上午 08:00:00----DD--当前⽇的前⼀天SELECT TRUNC(SYSDATE,'DD') -1+8/24FROM DUAL---2020/05/19 上午 08:00:00SELECT TRUNC(SYSDATE) -1+8/24FROM DUAL---2020/5/19 上午 08:00:00--当前⽇SELECT TRUNC(SYSDATE,'DD') +8/24FROM DUAL---2020/05/20 上午 08:00:00SELECT TRUNC(SYSDATE) +8/24FROM DUAL ---2020/5/20 上午 08:00:00----D--当前星期的第⼀天SELECT TRUNC(SYSDATE,'D') FROM DUAL---2020/05/17 当前星期的第⼀天 {是星期⽇哦}----HH--当前的时间,精确到⼩时SELECT TRUNC(SYSDATE,'HH') FROM DUAL---2020/05/20 下午 03:00:00--当前的时间的前⼀⼩时SELECT TRUNC(SYSDATE,'HH')-1/24FROM DUAL---2020/05/20 下午 02:00:00----MI--当前时间,精确到分SELECT TRUNC(SYSDATE,'MI') FROM DUAL---2020/05/20 下午 03:40:00--当前时间前⼀分钟SELECT TRUNC(SYSDATE,'MI') -1/24/60FROM DUAL---2020/05/20 下午 03:39:00。

sql查询本日本周本月本年的语句

sql查询本日本周本月本年的语句

备注:语法DATEPART(datepart,date)date参数是合法的日期表达式。

datepart参数可以是下列的值:datepart 缩写年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk, ww星期dw, w小时hh分钟mi, n秒ss, s毫秒ms微妙mcs纳秒nssql 查询本周本月问题---查询今日信息select * from 表名 where datediff(day,时间字段,getdate())=0 其中day可以换成其他时间函数如month等---求相差天数select datediff(day,'2004-01-01',getdate())--1.一个月第一天的SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)--2.本周的星期一SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)select dateadd(wk,datediff(wk,0,getdate()),6)--3.一年的第一天SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)--4.季度的第一天SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)--5.当天的半夜SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)--6.上个月的最后一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))--7.去年的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))--8.本月的最后一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))--9.本年的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0) )--10.本月的第一个星期一select DATEADD(wk,DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)--查询本周注册人数select count(*) from [user]where datediff(week,create_day-1,getdate())=0--上周注册人数select count(*) from [user]where datediff(week,create_day-1,getdate())=1--本月注册人数select count(*) from [user]where datediff(month,create_day,getdate())=0--上月注册人数select count(*) from [user]where datediff(month,create_day,getdate())=1--如果要效率,这样写查询--查询本周注册人数select count(*) from [user]where create_day>=dateadd(day,2-datepart(weekday,getdate()),convert (varchar,getdate(),112))and create_day<dateadd(day,9-datepart(weekday,getdate()),convert(va rchar,getdate(),112))--上周注册人数select count(*) from [user]where create_day>=dateadd(day,-5-datepart(weekday,getdate()),conver t(varchar,getdate(),112))and create_day<dateadd(day,2-datepart(weekday,getdate()),convert(va rchar,getdate(),112))--本月注册人数select count(*) from [user]where create_day>=dateadd(day,1-day(getdate()),convert(varchar,getd ate(),112))and create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert (varchar,getdate(),112)))--上月注册人数select count(*) from [user]where create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),con vert(varchar,getdate(),112)))and create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate (),112))--本周select count(*) from Userwhere datediff(dd,create_day,getdate()) <= datepart(dw,getdate( ))--上周select count(*) from Userwhere datediff(dd,create_day,(getdate() - datepart(dw,getdate() ))) <= 7--本月select count(*) from Userwhere datepart(mm,create_day) = datepart(mm,getdate())--上月select count(*) from Userwhere datepart(mm,create_day) = datepart(mm,getdate()) - 1 --本周select count(*) from [User]where datediff(dd,create_day,getdate()) <= datepart(dw,getdate( ))--上周select count(*) from [User]where datediff(dd,create_day,(getdate() - datepart(dw,getdate() ))) <= 7--本月select count(*) from [User]where datepart(mm,create_day) = datepart(mm,getdate())--上月select count(*) from [User]where datepart(mm,create_day) = datepart(mm,getdate()) - 1学习month(create_day)=month(getdate())本月month(create_day)=month(getdate())-1 上月补充查询今日所有的SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC下面的可能好些,加了判断是不是本年的,上面的本周,本月会把每年的都查出来查询本月的记录select * from tableName where DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())查询本周的记录select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())查询本季的记录select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())sql server:--frist dayselect dateadd(dd,-datepart(dd,getdate())+1,getdate())--last dayselect dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate()))--next month first dayselect dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))--本月天数select datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()),dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())))orselect datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))oracle--本月天数select to_number(to_char(last_day(sysdate),'DD')) from dual加法select sysdate,add_months(sysdate,12) from dual; --加1年select sysdate,add_months(sysdate,1) from dual; --加1月select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒减法select sysdate,add_months(sysdate,-12) from dual; --减1年select sysdate,add_months(sysdate,-1) from dual; --减1月select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒。

sql语句获取本周、上一周、本月数据

sql语句获取本周、上一周、本月数据

sql语句‎获取本周、‎上一周、本‎月数据 .‎分类:‎S QL20‎05 20‎10-04‎-23 1‎6:29 ‎363人阅‎读评论(‎0) 收藏‎举报‎s ql本‎周se‎l ect ‎* fro‎m tb ‎w here‎date‎d iff(‎w eek ‎,时间字‎段 ,ge‎t date‎()) =‎0上‎周se‎l ect ‎* fro‎m tb ‎w here‎date‎d iff(‎w eek ‎,时间字‎段 ,ge‎t date‎()) =‎1下‎周se‎l ect ‎* fro‎m tb ‎w here‎date‎d iff(‎w eek ‎,时间字‎段 ,ge‎t date‎()) =‎-1‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎---‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎--上‎月Se‎l ect ‎* Fro‎m Tab‎l eNam‎e Whe‎r e Da‎t eDif‎f(mm,‎Date‎T imCo‎l, Ge‎t Date‎()) =‎1 -‎-本月‎S elec‎t * F‎r om T‎a bleN‎a me W‎h ere ‎D ateD‎i ff(m‎m, Da‎t eTim‎C ol, ‎G etDa‎t e())‎= 0 ‎--下月‎Sel‎e ct *‎From‎Tabl‎e Name‎Wher‎e Dat‎e Diff‎(mm, ‎G etDa‎t e(),‎Date‎T imCo‎l ) =‎1 ‎昨天‎:date‎a dd(d‎a y,-1‎,getd‎a te()‎)明天‎:date‎a dd(d‎a y,1,‎g etda‎t e())‎上月:‎m onth‎(date‎a dd(m‎o nth,‎-1, ‎g etda‎t e())‎)本月‎:mont‎h(get‎d ate(‎))下‎月:mon‎t h(da‎t eadd‎(mont‎h, 1,‎getd‎a te()‎))-‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎--‎昨天‎S elec‎t * F‎r om T‎a bleN‎a me W‎h ere ‎D ateD‎i ff(d‎d, Da‎t eTim‎C ol, ‎G etDa‎t e())‎= 1 ‎--明天‎Sel‎e ct *‎From‎Tabl‎e Name‎Wher‎e Dat‎e Diff‎(dd, ‎G etDa‎t e(),‎Date‎T imCo‎l) = ‎1 --‎最近七天‎Sele‎c t * ‎F rom ‎T able‎N ame ‎W here‎Date‎D iff(‎d d, D‎a teTi‎m Col,‎GetD‎a te()‎) <= ‎7 --‎随后七天‎-‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎-----‎----‎当前年‎sele‎c t 提‎出日期, ‎d atep‎a rt(y‎e ar,g‎e tdat‎e()) ‎a s 当‎前年 fr‎o m 供方‎资料表‎前一年‎s elec‎t提出‎日期, d‎a tepa‎r t(ye‎a r,ge‎t date‎())-1‎as ‎当前年 f‎r om 供‎方资料表‎后一年‎sele‎c t 提‎出日期, ‎d atep‎a rt(y‎e ar,g‎e tdat‎e())+‎1 as ‎当前年‎f rom ‎供方资料表‎‎。

使用sql语句查询日期的方法

使用sql语句查询日期的方法

使用sql语句查询日期的方法使用sql语句查询日期的方法篇一:使用sql语句查询日期使用sql语句查询日期select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据--查询当天:select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的:select * from info where DateDiff(hh,datetime,getDate())<=24--info为表名,datetime为数据库中的字段值--查询当天:select * from info where DateDiff(dd,datetime,getdate())=0 --查询24小时内的:select * from info where DateDiff(hh,datetime,getDate())<=24 --info为表名,datetime为数据库中的字段值Sql代码--查询当天记录另类的方法SELECT *FROM j_GradeShopWHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1) ORDER BY GAddTime DESC--查询当天记录另类的方法SELECT *FROM j_GradeShopWHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1) ORDER BY GAddTime DESCDATEDIFF 函数:语法:DATEDIFF ( datepart , startdate , enddate )备注:enddate 减去 startdate。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

备注:语法DATEPART(datepart,date)date参数是合法的日期表达式。

datepart参数可以是下列的值:datepart 缩写年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk, ww星期dw, w小时hh分钟mi, n秒ss, s毫秒ms微妙mcs纳秒nssql 查询本周本月问题---查询今日信息select * from 表名 where datediff(day,时间字段,getdate())=0 其中day可以换成其他时间函数如month等---求相差天数select datediff(day,'2004-01-01',getdate())--1.一个月第一天的SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)--2.本周的星期一SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)select dateadd(wk,datediff(wk,0,getdate()),6)--3.一年的第一天SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)--4.季度的第一天SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)--5.当天的半夜SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)--6.上个月的最后一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))--7.去年的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))--8.本月的最后一天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))--9.本年的最后一天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0) )--10.本月的第一个星期一select DATEADD(wk,DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)--查询本周注册人数select count(*) from [user]where datediff(week,create_day-1,getdate())=0--上周注册人数select count(*) from [user]where datediff(week,create_day-1,getdate())=1--本月注册人数select count(*) from [user]where datediff(month,create_day,getdate())=0--上月注册人数select count(*) from [user]where datediff(month,create_day,getdate())=1--如果要效率,这样写查询--查询本周注册人数select count(*) from [user]where create_day>=dateadd(day,2-datepart(weekday,getdate()),convert (varchar,getdate(),112))and create_day<dateadd(day,9-datepart(weekday,getdate()),convert(va rchar,getdate(),112))--上周注册人数select count(*) from [user]where create_day>=dateadd(day,-5-datepart(weekday,getdate()),conver t(varchar,getdate(),112))and create_day<dateadd(day,2-datepart(weekday,getdate()),convert(va rchar,getdate(),112))--本月注册人数select count(*) from [user]where create_day>=dateadd(day,1-day(getdate()),convert(varchar,getd ate(),112))and create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert (varchar,getdate(),112)))--上月注册人数select count(*) from [user]where create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),con vert(varchar,getdate(),112)))and create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate (),112))--本周select count(*) from Userwhere datediff(dd,create_day,getdate()) <= datepart(dw,getdate( ))--上周select count(*) from Userwhere datediff(dd,create_day,(getdate() - datepart(dw,getdate() ))) <= 7--本月select count(*) from Userwhere datepart(mm,create_day) = datepart(mm,getdate())--上月select count(*) from Userwhere datepart(mm,create_day) = datepart(mm,getdate()) - 1 --本周select count(*) from [User]where datediff(dd,create_day,getdate()) <= datepart(dw,getdate( ))--上周select count(*) from [User]where datediff(dd,create_day,(getdate() - datepart(dw,getdate() ))) <= 7--本月select count(*) from [User]where datepart(mm,create_day) = datepart(mm,getdate())--上月select count(*) from [User]where datepart(mm,create_day) = datepart(mm,getdate()) - 1学习month(create_day)=month(getdate())本月month(create_day)=month(getdate())-1 上月补充查询今日所有的SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC下面的可能好些,加了判断是不是本年的,上面的本周,本月会把每年的都查出来查询本月的记录select * from tableName where DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())查询本周的记录select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())查询本季的记录select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())sql server:--frist dayselect dateadd(dd,-datepart(dd,getdate())+1,getdate())--last dayselect dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate()))--next month first dayselect dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))--本月天数select datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()),dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())))orselect datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))oracle--本月天数select to_number(to_char(last_day(sysdate),'DD')) from dual加法select sysdate,add_months(sysdate,12) from dual; --加1年select sysdate,add_months(sysdate,1) from dual; --加1月select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; --加1天select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒减法select sysdate,add_months(sysdate,-12) from dual; --减1年select sysdate,add_months(sysdate,-1) from dual; --减1月select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒。

相关文档
最新文档