首页 > 解决方案 > 如何将 varchar 转换为日期格式

问题描述

代码似乎正确仍然收到错误消息

从字符串转换日期和/或时间时转换失败。

UPDATE G
SET 
QuoteDate = FORMAT (DATEADD(yy,4,CAST(M.PaymentDate as date)),'MM/dd/yyyy')
FROM  dbo.Grantor G    
INNER JOIN  dbo.Member M ON G.Quoteid = M.fQuoteid 

字段的数据类型如下

QuoteDate    --->     DATE , 
PaymentDate  --->     VARCHAR

如果我做错了,请纠正我。

标签: sql

解决方案


您的M.PaymentDate值之一可能无法转换为日期,因此它没有运行并会引发错误。您可以仔细检查您的日期是否合适

SELECT 
M.PaymentDate, 
TRY_CAST(M.PaymentDate AS date)
FROM dbo.Member m


WHERE TRY_CAST(M.PaymentDate AS date) IS NULL

下一步取决于您。您可以以某种方式解析错误值,也可以排除它们。


推荐阅读