2012-01-20 86 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