【发布时间】:2014-05-07 19:42:05
【问题描述】:
我试图翻转日期字段,因为出于某种原因,将数据发送给我们的人将它们放在了错误的字段中。基本上只要 revived_date 大于 JDate 就需要翻转它们。我尝试了下面的代码,它说它更正了 2341 个字段,然后我运行了一个选择,它显示没有找到任何记录,但是在查看数据时我清楚地看到了错误的数据。
UPDATE defendants_ALL_backup
SET JDate = revived_date, revived_date = JDate
WHERE convert(varchar,JDate, 101) < convert(varchar, revived_date, 101);
如果我选择前 1000 行,前 3 行是错误的,看起来像这样,所以它显然不起作用。
JDate revived_date
2011-04-14 00:00:00.000 1986-02-11 00:00:00.000
2011-04-14 00:00:00.000 1986-02-11 00:00:00.000
2011-04-14 00:00:00.000 1986-02-11 00:00:00.000
有什么想法吗?
【问题讨论】:
-
为什么要将它们转换为 varchar 以便进行比较?日期有一个固有的顺序。
-
你也有一些
id作为表格列吗? -
@StuartAinsworth 我根据我阅读的内容转换为 varchar,因为另一种方式也不起作用。
标签: tsql sql-update