sql - 如何将 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
如果我做错了,请纠正我。
解决方案
您的M.PaymentDate
值之一可能无法转换为日期,因此它没有运行并会引发错误。您可以仔细检查您的日期是否合适:
SELECT
M.PaymentDate,
TRY_CAST(M.PaymentDate AS date)
FROM dbo.Member m
WHERE TRY_CAST(M.PaymentDate AS date) IS NULL
下一步取决于您。您可以以某种方式解析错误值,也可以排除它们。
推荐阅读
- laravel - 无法登录到 Gitlab CI 中的 MSSQL docker 以开始测试迁移
- javascript - 从对象有键返回对象的条件为真
- php - 使用 php 获取图像时的结果排序
- saml-2.0 - 为多个身份提供者使用 1 个 SAML2.0 服务提供者
- c++ - 使用 C++ 查找树的最深叶子总和的程序
- c# - 为什么我的表格没有发回我的 td 信息?
- reactjs - 在反应js中单击andchor时以模式查看行数据
- javascript - 在js中有条件地分配const值
- python - 与另一个参数同名的 Python 可选参数
- reactjs - Reactjs 控制台错误([HMR] 等待来自 WDS 的更新信号...)