2016-02-27 107 views
0

我需要这种转换帮助转换日期和/或时间未能转换失败。TSQL - 当从字符串转换日期和/或时间时,从字符串

我想上@as_of_date运行一个简单的查询,10天前和30天前。查询工作正常,如果我在3-5个帐户上运行它,但是如果失败的话就更多。如何更改我的查询,以便我不会收到转换错误?

这里是我的示例查询: enter image description here

编辑

还试图从select语句去掉引号。仍然不起作用。

enter image description here

+1

您试图可变的字符串'“@as_of_date”',而不是值转换使用该名称。删除引号。 –

+3

为什么你在地球上输入“mm-dd-yyyy”而不是被区域/语言设置误解的格式,比如'yyyymmdd'?请[全文阅读](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx)。此外,显示所有的代码,因为我不相信你显示的部分中发生了错误。 –

+0

我认为我的问题要大得多。我的查询将运行良好的前1370记录,但是当我将查询更改为顶部1371它会引发“转换日期和/或时间从字符串转换失败”消息。我也无法按任何栏目排序。我认为这是表格的问题,并向开发者发送了一条消息。 – BIReportGuy

回答

1

您可以尝试使用ISDATE函数来查看输入的数据是有效的日期..我也不要在截图中看到怎样/什么是输入。

+0

ISDATE函数解决了问题。谢谢! – BIReportGuy

0

要转换的@as_of_date两次。 您可以使用SELECT convert(date, getdate(), 110) 纠正我,如果我错了。

+0

的问题部分对不起,这是行不通的。我删除了转换,并使用'currentday'= @as_of_date,我仍然收到对话失败的错误消息。 – BIReportGuy

0

请删除在SELECT语句@asofdate可变报价和尝试像转换(日期,@ as_of_date,110)

注:虽然分配值的变量只是它的转换,因此无需再次转换在SELECT语句

+0

对不起,这没有奏效。看到我上面编辑的版本。 – BIReportGuy

相关问题