sql数据库查询本周数据

我的数据库日期字段名称是“时间”格式是字符串,2013/7/24 星期三 12:32:22

我用 Select * FROM 表名 Where datediff(week,时间,getdate())=0

怎么查不到任何数据,数据库是有数据的

主要原因是因为你时间字段是字符串

所以要进行几个转换

 

给你写了下

select * from è¡¨å where datediff(week,cast(substring(时间,1,charindex(' æ˜Ÿ',(时间))-1) as datetime),getdate()) =0

直接复制,运行,表名换一下就行

追问

试了下,查询到的数据是从上周日开始的,而不是本周一开始

追答

那就是是按照周日为一周开始来计算的
这个应该属于是数据库开发者的问题,你的意思是要以周一为一周的开始是吧?那我给你改一下

追问

对的,我想查询本周内 从周一开始到周末的数据

追答select * from è¡¨å where datediff(week,cast(substring(时间,1,charindex(' æ˜Ÿ',(时间))-1)-1 as datetime),getdate()) =0

这样试试

追问

查不到任何数据

追答

远程一下?

你,浏览器右上

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-29
select *from 表名 where datediff(Dd,字段名,getdate())>=6 查询今天之前的数据七天
你看上面我写的这个sql语句,

可以是试试把week改为Dd,
这样查询下试试看可行

希望我的回答有帮助到您,
如果帮到您了,望及时采纳哈
第2个回答  2013-07-29
应该是你那个时间字符串"2013/7/24 星期三 12:32:22“不能正确转换为日期类型吧。可以考虑对字符串按升序取一次日期,如
declare @s varchar(30)

select @s='2013/7/29 星期三 12:32:22'

select @s= convert(varchar(10),@s,121)
相似回答