2013-05-09 50 views
0

我有一个有startDate和endDate的数据库。我试图运行这个简单的脚本来查找和替换某些日期。这里是我的脚本:SQL Server 2008 - 试图编辑日期 - 语法错误?

SET startDate = '2012-10-11 07:00' 
AND 
endDate = '2012-10-13 20:00' 

where startDate = '2012-10-12 07:00' 
AND 
endDate = '2012-10-14 20:00' 

我运行它,并收到以下错误:

Incorrect syntax near '='.: SET startDate => '2012-10-11 07:00' AND endDate = '2012-10-13 20:00' where startDate = '2012-10-12 07:00' AND endDate = '2012-10-14 20:00' 

我真的不知道为什么它不能正常运行,但是你聪明BOD的的希望一个位置就能指出我令人难以置信的愚蠢的错误!

这是希望! = 0)

回答

1

你需要单独的列用逗号更新,而不是AND

UPDATE YourTable 
SET  startDate = '2012-10-11 07:00', 
     endDate = '2012-10-13 20:00' 
WHERE startDate = '2012-10-12 07:00' 
AND  endDate = '2012-10-14 20:00' 

你也应该用一种文化不敏感的日期格式,如“YYYYMMDD HH:MM:SS”,例如你的日期2012-10-11 07:00,将被解释为10月11日由一些文化,11月10日由其他人。

Example on SQL Fiddle of why not use yyyy-mm-dd dates

+1

+1,好答案,好建议。这里是你的sqlfiddle使用yyyy-mm-dd与yyyymmdd比较结果http://sqlfiddle.com/#!3/053eb6/1 – Lamak 2013-05-09 17:28:50

+0

@Lamak谢谢,我更新了与你的答案中的链接,因为它更多完成。 – GarethD 2013-05-09 17:40:33

+0

令人惊叹的是,谢谢你们,你们救了我一些头痛!奖励! = 0) – c0d3n4m3 2013-05-09 19:00:29