2012-01-20 198 views
1

我是新的sqlserver,我刚开始学习它,我有一个问题。 **我想要一个SQL查询,可以调出过去6个月添加的所有行。在'用户'表中的日期是在字段'加入',但它在UNIX时间戳格式SQL查询搜索

**我想然后像另一个SQL查询相同,但它也与结果设置字段'激活'每一行中的 '是'

我试过代码:

select * from users where time_of_post is like '07/**/2011' 

** = ANYDAY但我不能老是实现它的权利。

非常感谢您提前给予的帮助。

回答

1
select * 
from users 
where datediff(mm, time_of_post, getdate()) <= 6 

你想用什么DATEDIFF()功能,并取得今天的天(GETDATE())和存储日期(time_of_post)之间的差异。如果这小于或等于6个月(如第一个参数mm所示),那么这应该是您要查找的内容。

编辑

如果你正在寻找使用这个逻辑的UPDATE,你会做这样的事情:

update users 
set activation = 'yes' 
where datediff(mm, time_of_post, getdate()) <= 6 
and activation <> 'yes' 
+0

然后第二个查询应该是:插入到用户(激活)值('是')其中(选择* 来自用户 其中datediff(mm,time_of_post,getdate())<= 6) –

+0

@ R.Vector不是真的,这听起来像你正在寻找更新用户记录?请参阅我的编辑。让我知道如果这就是你想要的。 – 2012-01-20 02:54:30