\ue50a时间:2018-04-23　08:19:33　\ue50b\ue50aSQL　\ue50b\ue50a我要投稿　\ue50b使用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_GradeShop　WHERE　(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_GradeShop　WHERE　(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　DATEDIFF　函数:　语法:　DATEDIFF　(　datepart　,　startdate　,　enddate　)　备注:enddate　减去　startdate。如果　startdate　晚于　enddate,则返回负值。　如果结果超出整数值范围,则DATEDIFF　将产生错误。对于毫秒,最大数是　24　天20　小时　31　分钟零　23.647　秒。对于秒,最大数是　68　年。　跨分钟、秒和毫秒等边界计算的方法使得　DATEDIFF　指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的　datepart　边界数。例如,在1月4日(星期日)和1月11　日(星期日)之间的星期数是　1。　可以再MSSQL中测试:　Sql代码　--两个时间差刚好是24　--打印的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　--查询的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　--两个时间差刚好是24　--打印的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　--查询的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　Sql代码　--本月记录　SELECT　*　FROM　表WHERE　datediff(month,[dateadd],getdate())=0　--本周记录　SELECT　*　FROM　表WHERE　datediff(week,[dateadd],getdate())=0　--包括本年这些查询方式是一样的　--本月记录　SELECT　*　FROM　表WHERE　datediff(month,[dateadd],getdate())=0　--本周记录　SELECT　*　FROM　表WHERE　datediff(week,[dateadd],getdate())=0　--包括本年这些查询方式是一样的　来源:(.cn/s/blog_4e17efaf0100gdt9.html)　-　sql查询当月,本天,本周的记录_婷婷_新浪博客　sql　server中的时间函数　1.　当前系统日期、时间　select　getdate()　2.　dateadd　在向指定日期加上一段时间的基础上,返回新的　datetime　值　例如:向日期加上2天select　dateadd(day,2,'2004-10-15')　--返回:2004-10-17　00:00:00.000　3.　datediff　返回跨两个指定日期的日期和时间边界数。　select　datediff(day,'2004-09-01','2004-09-18')　--返回:17　4.　datepart　返回代表指定日期的指定日期部分的整数。　SELECT　DATEPART(month,　'2004-10-15')　--返回　10　5.　datename　返回代表指定日期的指定日期部分的字符串　SELECT　datename(weekday,　'2004-10-15')　--返回:星期五　6.　day(),　month(),year()　--可以与datepart对照一下　select　当前日期=convert(var10),getdate(),120)　,当前时间=convert(var8),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-date1　DateAdd　(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~4Month　Mm　m　月1　~　12　Day　of　year　Dy　y　一年的日数,一年中的第几日　1-366　Day　Dd　d　日,1-31　Weekday　Dw　w　一周的日数,一周中的第几日　1-7　Week　Wk　ww　周,一年中的第几周　0　~　51　Hour　Hh　h　时0　~　23　Minute　Mi　n　分钟0　~　59　Second　Ss　s　秒0~59　Millisecond　Ms　-　毫秒　0　~　999　access　和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　ShopOrder　where　datediff(week,ordTime,getdate()-1)=0//查询当天日期在一周年的数据　select　*　from　ShopOrder　where　datediff(day,ordTime,getdate()-1)=0//查询当天的所有数据　SELECT　*　FROM　A　where　datediff(d,datetime,getdate())　<=30　//前30天SELECT　*　FROM　A　WHERE　DATEDIFF(m,　shijian,　GETDATE())　<=1　//　上一月　--查询当天:　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_GradeShop　WHERE　(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_GradeShop　WHERE　(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　DATEDIFF　函数:　语法:　DATEDIFF　(　datepart　,　startdate　,　enddate　)　备注:enddate　减去　startdate。如果　startdate　晚于　enddate,则返回负值。　如果结果超出整数值范围,则DATEDIFF　将产生错误。对于毫秒,最大数是　24　天20　小时　31　分钟零　23.647　秒。对于秒,最大数是　68　年。　跨分钟、秒和毫秒等边界计算的方法使得　DATEDIFF　指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的　datepart　边界数。例如,在1月4日(星期日)和1月11　日(星期日)之间的星期数是　1。　可以再MSSQL中测试:　Sql代码　--两个时间差刚好是24　--打印的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　--查询的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　--两个时间差刚好是24　--打印的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　--查询的方式　print　dateDiff(hh,'2009-1-1　0:0:0','2009-1-2　0:0:0')　Sql代码　--本月记录　SELECT　*　FROM　表WHERE　datediff(month,[dateadd],getdate())=0　--本周记录　SELECT　*　FROM　表WHERE　datediff(week,[dateadd],getdate())=0　--包括本年这些查询方式是一样的　--本月记录　SELECT　*　FROM　表WHERE　datediff(month,[dateadd],getdate())=0　--本周记录　SELECT　*　FROM　表WHERE　datediff(week,[dateadd],getdate())=0　--包括本年这些查询方式是一样的　sql　server中的时间函数　1.　当前系统日期、时间　select　getdate()　2.　dateadd　在向指定日期加上一段时间的基础上,返回新的　datetime　值　例如:向日期加上2天select　dateadd(day,2,'2004-10-15')　--返回:2004-10-17　00:00:00.000　3.　datediff　返回跨两个指定日期的日期和时间边界数。　select　datediff(day,'2004-09-01','2004-09-18')　--返回:17　4.　datepart　返回代表指定日期的指定日期部分的整数。　SELECT　DATEPART(month,　'2004-10-15')　--返回　10　5.　datename　返回代表指定日期的指定日期部分的字符串　SELECT　datename(weekday,　'2004-10-15')　--返回:星期五　6.　day(),　month(),year()　--可以与datepart对照一下　select　当前日期=convert(var10),getdate(),120)　,当前时间=convert(var8),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-date1　DateAdd　(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~4Month　Mm　m　月1　~　12　Day　of　year　Dy　y　一年的日数,一年中的第几日　1-366　Day　Dd　d　日,1-31　Weekday　Dw　w　一周的日数,一周中的第几日　1-7　Week　Wk　ww　周,一年中的第几周　0　~　51　Hour　Hh　h　时0　~　23　Minute　Mi　n　分钟0　~　59　Second　Ss　s　秒0~59　Millisecond　Ms　-　毫秒　0　~　999　access　和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时间查询语句　datediff(week,zy_time,getdate())=0　//查询本周　datediff(month,zy_time,getdate())=0　//查询本月　本季:select　*　from　table　where　datediff(qq,C_CALLTIME,getdate())=0　前半年1-6,后半年7-12:select　*　from　table　where　datepart(mm,C_CALLTIME)/7　=　datepart(mm,getdate())/7　1.　当前系统日期、时间　select　getdate()　2.　dateadd　在向指定日期加上一段时间的基础上,返回新的　datetime　值　例如:向日期加上2天select　dateadd(day,2,'2004-10-15')　--返回:2004-10-17　00:00:00.000　3.　datediff　返回跨两个指定日期的日期和时间边界数。　select　datediff(day,'2004-09-01','2004-09-18')　--返回:17　4.　datepart　返回代表指定日期的指定日期部分的整数。　SELECT　DATEPART(month,　'2004-10-15')　--返回　10　5.　datename　返回代表指定日期的指定日期部分的字符串　SELECT　datename(weekday,　'2004-10-15')　--返回:星期五　6.　day(),　month(),year()　--可以与datepart对照一下　select　当前日期=convert(var10),getdate(),120)　,当前时间=convert(var8),getdate(),114)　select　datename(dw,'2004-10-15')　select　本年第多少周=datename(week,'2004-10-15')　,今天是周几=datename(weekday,'2004-10-15')　函数　GetDate(　)　参数/功能　返回系统目前的日期与时间　以interval　指定的方式,返回　DateDiff　date2　与date1两个日期之间的　(interval,date1,date2)　差值　date2-date1　DateAdd　以interval指定的方式,加上(interval,number,date)　number之后的日期　返回日期date中,interval指定　DatePart　(interval,date)　部分所对应的整数值　返回日期date中,interval指定　DateName　(interval,date)　部分所对应的字符串名称　参数　interval的设定值如下:　Access　和缩写(Sql　Server)　ASP　Yy　Qq　Mm　yyyy　q　m　y　d　w　ww　h　n　s　-　值Year　Quarter　Month　说明　年1753　~　9999　季1~4月1　~　12　一年的日数,一年中的第几日　1-366　日,1-31　一周的日数,一周中的第几日　1-7　周,一年中的第几周　0　~　51　时0　~　23　分钟0　~　59　秒0~59　毫秒　0　~　999　Day　of　year　Dy　Day　Weekday　Week　Hour　Minute　Second　Dd　Dw　Wk　Hh　Mi　Ss　Millisecond　Ms　access　和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　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　--如果要效率,这样写查询　--查询本周注册人数　where　create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))　and　create_day=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))　and　create_day=dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))　and　create_day=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))　and　create_day