我有下表:
CREATE TABLE [dbo].[Accounts1](
[AccountId] [nvarchar](50) NULL,
[ExpiryDate] [nvarchar](50) NULL
)
我正在尝试使用此查询将nvarchar转换为datetime:
select convert(datetime, expirydate) from accounts
我收到此错误:
Conversion failed when converting datetime from character string.
状态栏显示“ 2390行”。我转到2390、2391和2392行。那里的数据没有错。我什至尝试转换那些特定的行,并且它可以工作。我如何找出导致转换错误的行?
最佳答案
尝试:
SELECT * FROM [dbo].[Accounts1] WHERE ISDATE(ExpiryDate) = 0
这是我的测试代码:
CREATE TABLE #t(
[ExpiryDate] [nvarchar](50) NULL
)
insert into #t (ExpiryDate)
select '1/1/2010'
insert into #t (ExpiryDate)
select 'foo'
insert into #t (ExpiryDate)
select '2/1/2010'
select * from #t where ISDATE(ExpiryDate) = 0
-- returns 1 row
drop table #t
关于sql-server - 找不到导致转换错误的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2871478/