【发布时间】:2021-02-24 13:59:36
【问题描述】:
在我的表中,值保存为Thursday November 12, 2020 07:01。我想将这些值转换为日期时间。这是我写的查询。
select
convert(varchar(200), replace(replace(replace(replace(replace(replace(replace(publishedon,'Monday',''),'Saturday',''),'Sunday',''),'Tuesday',''),'Wednesday',''),'Thursday',''),'Friday',''))
from py_EconNext
一旦我从值中删除了日期,我就可以得到November 12, 2020 11:04 的值。之后我尝试将其转换为日期时间。将其转换为日期时间时,出现错误
从字符转换日期和/或时间时转换失败 字符串。
但是当我运行如下选择时
select convert(datetime,convert(varchar(200),(' November 12, 2020 11:04')))
我可以得到2020-11-12 11:04:00.000 的值而没有任何错误。
表列数据类型 - varchar(200)
【问题讨论】:
-
您成为classic blunders 之一的受害者——其中最著名的是“永远不要卷入亚洲的陆战”——但鲜为人知的是:“永远不要把类型为 varchar 的列中的日期!"
-
@JoelCoehoorn 你就是喜欢这句话和电影!
-
@SM 我愿意。 :) 每次复制/粘贴相同的内容也更容易,当您需要告诉某人他们做错了时,幽默有助于减轻打击。
标签: sql sql-server tsql