【发布时间】:2012-07-11 12:24:00
【问题描述】:
我有一个视图,其中有一列在 varchar formet 和 dd/MM/yyyy 中有日期
当我尝试使用 order by 它给出的错误是
Msg 241, Level 16, State 1, Line 2 转换时转换失败 字符串中的日期和/或时间。
查询是
select * from test1.dbo.abcd order by CONVERT(date,ddate,103)
它返回 0 的某些日期是 13/01/2010
18/12/2009
20/10/2009
21/06/2010
19/10/2009
18/11/2010
29/10/2009
29/10/2009
18/03/2010
15/03/2010
15/03/2010
15/03/2010
15/04/2010
15/04/2010
15/04/2010
15/04/2010
30/03/2010
14/05/2010
14/01/2010
23/10/2009
20/10/2009
27/10/2009
27/10/2009
20/07/2009
20/04/2010
13/08/2010
30/06/2011
23/07/2010
27/08/2010
24/09/2010
谁能告诉我为什么它返回 0 以及如何排序?
【问题讨论】:
-
为什么您的日期不存储为
DATE类型? -
日期时间函数在数据库系统之间差异很大。如果这只是关于 SQL-Server,请删除
plsql和mysql标记。 -
如果您只是在有问题的日期转换会发生什么?
-
是sql server 2008 R2
-
是您从实际查询中显示的数据 - 它不是按日期排序的,也不包括您所说的错误字符串(以及标题与问题有什么关系)跨度>