获取当前日期: --获取当前日期(如:yyyymmdd) select CONVERT (nvarchar(12),GETDATE(),112) --获取当前日期(如:yyyymmdd hh:MM:ss) select GETDATE() --获取当前日期(如:yyyy-mm-dd) Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate()) --获取当前日期(如:yyyy/mm/dd) select DATENAME(YEAR,GETDATE())+'/'+DATENAME(MONTH,GETDATE())+'/'+DATENAME(DAY,GETDATE()) --获取几种日期 select DATENAME(YEAR,GETDATE()) --年份(YYYY) select DATENAME(YY,GETDATE()) select DATENAME(MM,GETDATE()) --月份 select DATENAME(DD,GETDATE()) --日期 select dateName(hh,getdate()) --获取小时 select DATENAME(MI,GETDATE()) --获取分钟 select DATENAME(SECOND,GETDATE()) --获取秒 select DATENAME(WEEK,GETDATE()) --获取当前星期(周)是这一年中的第几个星期(周) select DATENAME(WEEKDAY,GETDATE()) --星期几 --日期转换 --例如2011-10-24 15:57:16 select CONVERT(varchar, getdate(), 120 ) select CONVERT(varchar,GETDATE(),111)+' '+DATENAME(HH,GETDATE())+':'+DATENAME(MI,GETDATE())+':'+DATENAME(SECOND,GETDATE()) --例如20111024155657 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --例如2011/10/24 select CONVERT(varchar(12) , getdate(), 111 ) --例如20111024 select CONVERT(varchar(12) , getdate(), 112 ) --例如111024 (取日期后6位) select CONVERT(varchar(12) , getdate(), 12 ) --例如2011.10.24 select CONVERT(varchar(12) , getdate(), 102 ) --例如10/24/2011 select CONVERT(varchar(12) , getdate(), 101 ) --例如24/10/2011 select CONVERT(varchar(12) , getdate(), 103 ) --例如24.10.2011 select CONVERT(varchar(12) , getdate(), 104 ) --例如24-10-2011 select CONVERT(varchar(12) , getdate(), 105 ) --例如24 10 2011 select CONVERT(varchar(12) , getdate(), 106 ) --例如10 24, 2011 select CONVERT(varchar(12) , getdate(), 107 ) --例如16:01:18 select CONVERT(varchar(12) , getdate(), 108 ) --例如10 24 2011 select CONVERT(varchar(12) , getdate(), 109 ) --例如10-24-2011 select CONVERT(varchar(12) , getdate(), 110 ) --例如24 10 2011 1 select CONVERT(varchar(23) , getdate(), 113 ) --例如16:04:27:590(590为毫秒) select CONVERT(varchar(12) , getdate(), 114 ) --日期格式为:yyyy/mm/dd hh:mm:ss select CONVERT(varchar(12),GETDATE(),111)+' '+DATENAME(HH,GETDATE())+':'+DATENAME(MI,GETDATE())+':'+ DATENAME(SECOND,GETDATE()) --日期格式为:yyyy-mm-dd hh:mm:ss select CONVERT(varchar(30),GETDATE(),120)+':'+DATENAME(MILLISECOND,GETDATE())+':'+DATENAME(MCS,GETDATE()) select CONVERT(varchar(30),GETDATE(),120)+':' + DATENAME(MILLISECOND,GETDATE()) 获取其他日前: --如果是在表中查詢 --昨天 Select * From TableName Where DateDiff(dd, DateTimCol, GetDate()) = 1 --明天 Select * From TableName Where DateDiff(dd, GetDate(), DateTimCol) = 1 --最近七天 Select * From TableName Where DateDiff(dd, DateTimCol, GetDate()) <= 7 --随后七天 Select * From TableName Where DateDiff(dd, GetDate(), DateTimCol) <= 7 --上周 Select * From TableName Where DateDiff(wk, DateTimCol, GetDate()) = 1 --本周 Select * From TableName Where DateDiff(wk, DateTimCol, GetDate()) = 0 --下周 Select * From TableName Where DateDiff(wk, GetDate(), DateTimCol ) = 1 --上月 Select * From TableName Where DateDiff(mm, DateTimCol, GetDate()) = 1 --本月 Select * From TableName Where DateDiff(mm, DateTimCol, GetDate()) = 0 --下月 Select * From TableName Where DateDiff(mm, GetDate(), DateTimCol ) = 1 -------------------------------------------------------- 本周 select * from tb where datediff(week , 时间字段 ,getdate()) = 0 上周 select * from tb where datediff(week , 时间字段 ,getdate()) = 1 下周 select * from tb where datediff(week , 时间字段 ,getdate()) = -1 -------------------------------------------------------- select convert(varchar(10),getdate(),120) 昨天 select convert(varchar(10),getdate() - 1,120) 明天 select convert(varchar(10),getdate() + 1,120) 最近七天 select * from tb where 时间字段 >= convert(varchar(10),getdate() - 7,120) 随后七天 select * from tb where 时间字段 <= convert(varchar(10),getdate() + 7,120) and 时间字段 >= 时间字段 上月 select * from tb where month(时间字段) = month(getdate()) - 1 本月 select * from tb where month(时间字段) = month(getdate()) 下月 select * from tb where month(时间字段) = month(getdate()) + 1 本周 select * from tb where datediff(week , 时间字段 ,getdate()) = 0 本周 周一开始 select * from u_user_Current_month_Score_Got_Log where convert(char(10),insertTime,120)>=convert(char(10),DATEADD(wk, DATEDIFF(wk,0,getdate()), 0),120) and convert(char(10),insertTime,120)<=convert ( char(10),DATEADD( wk, DATEDIFF(wk,0,getdate()), 6 ),120 ) 第一种 本周 周一开始 set datefirst 1 --以周1为第一天 select * From u_user_Current_month_Score_Got_Log where datepart(week,inserttime) = datepart(week,dateadd(day,-1,getdate())) 第二种 本周 周一开始 select * From u_user_Current_month_Score_Got_Log where datepart(week,dateadd(day,-1,inserttime)) = datepart(week,dateadd(day,-1,getdate())) where datepart(week,dateadd(day,-1,inserttime)) = datepart(week,dateadd(day,-1,getdate())) 上周 周一开始 select * From u_user_Current_month_Score_Got_Log where datepart(week,dateadd(day,-1,inserttime)) = datepart(week,dateadd(day,-1,getdate()))-1 上周 select * from tb where datediff(week , 时间字段 ,getdate()) = 1 下周 select * from tb where datediff(week , 时间字段 ,getdate()) = -1 -------------------------------------------------------- 昨天:dateadd(day,-1,getdate()) 明天:dateadd(day,1,getdate()) 上月:month(dateadd(month, -1, getdate())) 本月:month(getdate()) 下月:month(dateadd(month, 1, getdate())) 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shikun187/archive/2008/11/24/3360275.aspx