MSSQL-从字符串转换日期和/或时间时,转换失败

1、报错的sql为:

select 
  ID,
  Test_time as 时间, 
from ProcessData 
where 
  convert(datetime,test_time,120) between convert(datetime, '2020-10-10', 120) and convert(datetime, '2024-10-11', 120)  

   它是将Test_time转化为datetime格式,再用between进行比较;

2、报错原因:

  是由convert()函数报错引起,需要定位到哪条数据报错,修正那条数据。

3、对策:

(1)定位报错源

  用于定位是表内哪条数据报错的sql如下:

select 
  T1.ID, 
  T1.ConversionStatus
from
  (select 
     ID, 
     CASE WHEN TRY_CAST(Test_time AS DATE) IS NULL 
        THEN '无法转换' ELSE '可以转换'END AS ConversionStatus
   from ProcessData 
   where test_time >'2024-10-08'
  ) T1
where ConversionStatus='无法转换'

  

(2)修正/删除

  我这里不需要这个数据,直接删除即可。

delete from ProcessData 
where test_time >'2024-10-08' AND ID='2'

 

posted @   ꧁执笔小白꧂  阅读(524)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-10-10 VMware Workstation Pro15.5.1密钥
点击右上角即可分享
微信分享提示