在SQL Server

时间:2017-01-19 19:08:13

标签: sql sql-server sql-server-2008

这就是我所做的:

select top 1000 convert(nvarchar(50), cast([date written] as datetime), 1) 
from practicetable
where convert(nvarchar(50), cast([date written] as datetime), 1) = '09/07/16'

虽然这个查询在任何时候都可以小规模工作但我尝试选择超过1000条记录但查询失败了,我收到了这个错误:

  

从字符串转换日期时间

时转换失败

为什么我不能选择超过1,000条记录?

2 个答案:

答案 0 :(得分:2)

将日期保存为字符串始终存在风险。由于你在2008年没有Try_Convert(),我建议你

select distinct [date written] from practicetable order by 1

查看哪些日期格式不正确,并根据需要进行修补

答案 1 :(得分:0)

查询失败,因为它尝试将字符串转换为日期,但字符串不符合日期格式。换句话说,“从字符串转换日期时间时转换失败”。您应该仔细查看基础数据,以确定导致问题的记录。