sql - SQL Server 区分看似相等的日期字符串并引发转换错误
问题描述
从 .csv导入格式的日期字符串后,dd.(m)m.yyyy
我似乎无法将它们转换为日期。
使用CONVERT (date, DATE_COLUMN, 104)
会导致错误:
从字符串转换日期和/或时间时转换失败。
但是,如果我尝试转换从列选择输出 ( CONVERT (date, '20.5.2018', 104)
) 复制的值,则代码对于列中的每个单个值都可以正常工作。
修剪琴弦没有用。我也尝试过手动重写源文件中的日期字符串,但结果是一样的。
总结(使用 1 个示例值):
select CONVERT(date, DATE_COLUMN, 104)
from dbo.table
返回:
从字符串转换日期和/或时间时转换失败。
select DATE_COLUMN
from dbo.table
返回:2018 年 5 月 20 日
select CONVERT(date,'20.5.2018', 104)
返回:'2018-5-20'
我希望 SQL Server 以相同的方式对待每个转换。虽然有一种解决方法(将字符串拆分为日期部分并将它们组合成日期),但我不明白为什么转换首先会失败。任何帮助表示赞赏。
解决方案
用于try_convert()
查找问题值:
select DATE_COLUMN
from dbo.table
where try_convert(date, DATE_COLUMN, 104) is null and
DATE_COLUMN is not null;
推荐阅读
- python - 如何打印 UTC UNIX 纪元/时间戳?
- typescript - vercel 部署无法需要`.d.ts`文件
- ddev - 我可以完全摆脱 MySql 容器吗
- google-apps-script - 如何在谷歌文档中用双换行符替换单个换行符
- python - 制作从 seaborn 到 matplotlib 的堆积条形图
- python - 在类构造函数中表达同级嵌套类的类型提示
- system-verilog - 是否可以在 SystemVerilog 中不同的其他 case 语句中包含的 case 语句中使用相同的表达式?
- angular - 重复识别的“IteratorResult”
- java - 冒泡排序二维数组按字母顺序Java
- huawei-mobile-services - 华为地图突然无法加载崩溃