【发布时间】:2012-02-14 18:12:18
【问题描述】:
任务:
我需要计算 2011 年 7 月 1 日之后添加的表中的每条记录。
信息:
“Date_added”表中有一个列,格式为 varchar,包含格式为 mm/dd/yyyy 的日期。
我的尝试:
我尝试了以下查询:
SELECT count(date_added) FROM Abatements_Doc WHERE date_added >= '07/01/2011'
不幸的是,无论年份或日期如何,它都会计算月份大于 07 的任何日期。我不知道应该如何格式化我的查询以使其正确读取日期而不是通过 ascii 排序。在我的研究中,我发现了 CAST 和 CONVERT 选项,但不确定如何使用它们,或者如果有的话我应该使用哪一个。我对 SQL 非常陌生,并且想确保我不会弄乱表中的数据。我只需要得到上面指定的计数,而不以任何方式更改表中的数据。非常感谢这方面的任何帮助。提前致谢。
【问题讨论】:
-
为什么将日期存储为 varchar? stackoverflow.com/a/4759039/284240
-
该数据库是我们从供应商处购买的 Web 应用程序的一部分。我整个上午都在为同一个问题诅咒他们。
标签: sql sql-server-2008