【发布时间】:2014-04-28 11:42:19
【问题描述】:
我在 SQL Server 2008 数据库中有一个表,它有一个“月”列,nvarchar 数据类型,其中数据以“2013 年 1 月”、“2013 年 2 月”、“2013 年 3 月”等格式存储,直到'2014 年 3 月'。
现在我想要我的结果中从 2013 年 3 月到 2014 年 3 月的数据,但我无法得到。
我正在尝试这个 where 子句:WHERE (Month > DATEADD(Month, DATEDIFF(year, 0, GETDATE()) - 13, 0)) 但它给了我一个错误说 从字符串转换日期和/或时间时转换失败。
我还尝试将数据重命名为“2014 年 3 月”,随后也将其他条目重命名,但这也无济于事。
尊敬的 SQL 专家,请帮忙!
【问题讨论】:
-
"column 'Month',nvarchar 数据类型,其中数据以'Jan 2013"的格式存储 为什么不存储为
datetime或@987654322 @首先?这更便宜,更不容易出错,并且允许使用日期函数。您应该将其转换为显示它的字符串,所以在最后一个位置。这还有一个好处是您可以用不同的语言显示月份。
标签: sql-server tsql