SQL server 2005日期函数查询本周、本月数据(较全)
来源:互联网 发布:开通淘宝达人 编辑:程序博客网 时间:2024/06/01 08:00
日期函数
函数名称
参数
示例
说明
dateadd
(日期部分,数字,日期)
select dateadd(year,45,'1990-12-11')
返回 2035-12-11 00:00:00.000
select dateadd(month,45,'1990-12-11')
返回1994-09-11 00:00:00.000
select dateadd(mm,45,'1990-12-11')
返回1994-09-11 00:00:00.000
select dateadd(qq,12,'1990-12-11')
返回1993-12-11 00:00:00.000
select dateadd(hh,12,'1990-12-11')
返回1990-12-11 12:00:00.000
select dateadd(yy,-12,'1990-12-11')
返回1978-12-11 00:00:00.000
返回给指定日期加上一个时间间隔后的新的日期值。
数字:用于与指定的日期部分相加的值。如果指定了非整数值,则将舍弃该值的小数部分,舍弃时不遵循四舍五入。
日期:指定的原日期
在此函数中 dw,dy,dd效果一样都表示天
datediff
(日期部分,开始日期,结束日期)
select datediff(yy,'1990-12-11','2008-9-10')
返回 18
select datediff(mm,'2007-12-11','2008-9-10')
返回 9
返回两个指定日期的指定日期部分的差的整数值。
在计算时由结束日期减去开始日期
在此函数中 dw,dy,dd效果一样都表示天
datename
(日期部分,日期)
select datename(mm,'2007-12-11')返回12
select datename(dw,'2007-12-11')返回星期二
select datename(dd, '2007-12-11')返回11
返回表示指定日期的指定日期部分的字符串。
dw表示一星期中星期几,wk表示一年中的第几个星期
dy表示一年中的第几天
datepart
(日期部分,日期)
select datepart(mm,'2007-12-11')返回12
select datepart(dw,'2007-12-11')返回3
select datepart(dd, '2007-12-11')返回11
返回表示指定日期的指定日期部分的整数。
wk表示一年中的第几个星期
dy表示一年中的第几天,
dw表示一星期中星期几,返回整数默认1为星期天
getdate
无参数
select getdate()
返回2009-04-28 18:57:24.153
返回当前系统日期和时间。
day
(日期)
select day('2007-12-11')返回11
返回一个整数,表示指定日期的天的部分。
等价于datepart(dd, 日期)
month
(日期)
select month('2007-12-11')返回12
返回一个整数,表示指定日期的月的部分。
等价于datepart(mm, 日期)
year
(日期)
select year('2007-12-11')返回2007
返回一个整数,表示指定日期的年的部分。
等价于datepart(yy, 日期)
getutcdate
无参数
select getutcdate()
返回2009-04-28 10:57:24.153
返回表示当前的 UTC(世界标准时间)时间。即格林尼治时间(GMT)
日期部分(指定要返回新值的日期的组成部分。下表列出了 Microsoft SQL Server 2005 可识别的日期部分及其缩写。)
日期部分
含义
缩写
year
年
yy, yyyy
quarter
季
qq, q
month
月
mm, m
dayofyear
天(请看函数中的说明)
dy, y
day
天(请看函数中的说明)
dd, d
week
星期
wk, ww
weekday
天(请看函数中的说明)
dw, w
hour
小时
hh
minute
分钟
mi, n
second
秒
ss, s
millisecond
毫秒
ms
具体使用
本周:select * from table where datediff(week,SJ,getdate())=0 --SJ为日期字段
本月:select * from table where datediff(Month,SJ,getdate())=0 --SJ为日期字段
本季:select * from table where datediff(qq,SJ,getdate())=0
前半年1-6,后半年7-12:select * from table where datepart(mm,C_CALLTIME)/7 = datepart(mm,getdate())/7
sql得到当前系统时间得 日期部分CONVERT(varchar(10),getDate(),120)
上月
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 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
--------------------------------------------------------
datepart(WEEK,addtime )=datepart(WEEK,getdate())datepart(month,addtime )=datepart(month,getdate())datepart(QUARTER,addtime )=datepart(QUARTER,getdate())datepart(Year,addtime )=datepart(Year,getdate())
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
--如果要效率,这样写查询
--查询本周注册人数
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(varchar,getdate(),112))
--上周注册人数
select count(*) from [user]
where create_day>=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))
and create_day<dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))
--本月注册人数
select count(*) from [user]
where 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)))
--上月注册人数
select count(*) from [user]
where create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))
and create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))
--本周
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
--本周
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
- SQL server 2005日期函数查询本周、本月数据(较全)
- sql 查询本月,本周和当天的数据,sql 日期函数
- sql 当天、本周、本月数据查询
- 【数据库SQL】查询本周本月日期或者上月日期
- Sql Server中查询今天、昨天、本周、上周、本月、上月数据
- Sql Server中查询今天、昨天、本周、上周、本月、上月数据
- Sql Server查询指定范围(一周、一月、本周、本月等)内的数据
- Sql Server中查询今天、昨天、本周、上周、本月、上月数据
- SQL 查询当天,本月,本周的记录 ,日期计算
- SQL Server中获得本周,本月日期的方法
- SQL Server中获得本周,本月日期的方法
- sql查询本周本月本年
- sql 查询本周本月问题
- sql 查询本周本月问题
- sql查询本周本月本年
- sql语名查询"今天","昨天","本周","本月"数据方法!
- SQL 查询本周本月及时间段的数据
- sql语句- 查询 本月 本周 等相关数据
- 非常棒的android资料
- Apache源码安装配置参数
- 程序员的婚恋性心理健康规范
- aam 汇编指令
- 【ORACLE 高可用】 ORACLE STREAM 基于单表的流复制 配置 案例
- SQL server 2005日期函数查询本周、本月数据(较全)
- asp.net 接口
- CentOS下的Memcache安装
- SQLiteManager中SQL语句
- 搭建Android开发环境
- JavaFX2: 鼠标拖动选择和Ctrl+Shift连续区间选择的ListView
- 希尔顿饭店首任经理
- 【首尔大学韩国语】第十课 从哪儿来的?
- 【ORACLE 高可用】ORACLE STREAM 基于用户的流复制配置 案例