SELECT CONVERT(varchar(10), printdate, 120) AS printdate, COUNT(1) AS printCount FROM printdata
WHERE (DATEPART(week, printdate) = DATEPART(week, GETDATE()) - 1)
GROUP BY CONVERT(varchar(10), printdate, 120) ORDER BY printdate
获得上周我用DATEPART(week, GETDATE()) - 1 现在问题出来了:DATEPART好像是获得一年当中第几周,现在是2011年1月,查询时2002年1月的数据都跑出来,有什么好的解决办法,只获得上一周的数据
解决方案 »
- 用户'计算机名称\GUEST'登录失败。求救啊!
- 一次修改多行,如何用sql语句来实现?
- 关于两个表中的数据复制问题,用有A和B两个表,A中有AA列,B中有BB列,用update语句将BB列的前50条内容复制到AA列中的时候,为什么是同一条内容复制了50次?
- 想问一下,这个SQL语句怎么不行!
- 如何Sql数据库服务器中一个SQL查询结果导出到客户端的一个本地Excel文件里???急!!!!在线!
- sql 套嵌 查询的 问题
- 2005从design 关闭identity 为off 失败
- 公式编辑器
- 关于SQL Server 2000 的XML字段类型的查询.
- SQL镜像
- sql 2008如何实现mysql中group_concat?
- SQL2000 ntext数据类型 问题
不知道还有没有什么办法
DATEADD(wk,DATEDIFF(wk,0,getdate()), 0)
1900-01-01 00:00:00.000(1 行受影响)知道这个0就知道那个什么意思了
DATEADD ( datepart , number, date ) 在向指定日期加上一段时间的基础上,返回新的 datetime 值,楼主看看联机
上面已经给出答案了
select dateadd(wk,datediff(wk,0,getdate()),0)
,@X DATETIME
SET @D='2011-01-11'
SET @X='2011-01-10'SELECT DATEDIFF(wk,0,@D)
SELECT DATEADD(wk, DATEDIFF(wk,0,@D), 0)
SELECT DATEADD(DAY,-7,DATEADD(wk, DATEDIFF(wk,0,@D), 0))SELECT DATEDIFF(DAY,DATEADD(DAY,-7,DATEADD(wk, DATEDIFF(wk,0,@D), 0)),@X)