提问人:akBen 提问时间:9/14/2023 更新时间:9/14/2023 访问量:53
SQL 将 varchar 转换为 datetime 仅
SQL Convert varchar to datetime is only
问:
我有一个查询,我想从中将 varchar 转换为日期时间,但我得到了一个我无法理解的结果。 例如:我有一个 varchar 字段 (cAnmerkung),我在其中使用 charindex() 和 substring() 提取德国日期 12.02.2019。这是必要的,因为 varchar 中的日期在特定文本('HereItIs: 12.02.2019')之后,然后我更改此日期以便能够使用 replace() 将其转换为日期时间。最后,convert() 到 datetime 正在工作:
select a.cArtNr, SUBSTRING(b.cAnmerkung, CHARINDEX('HereItIs',b.cAnmerkung)+13 , 10) as 'GermanDate'
, replace(SUBSTRING(b.cAnmerkung, CHARINDEX('HereItIs',b.cAnmerkung)+13 , 10), '.', '/') as 'testFormat'
, convert(datetime, replace(SUBSTRING(b.cAnmerkung, CHARINDEX('HereItIs',b.cAnmerkung)+13 , 10), '.', '/'), 103) as 'ConvertedDate'
from tOrder b
join tPosition p on p.tBestellung_kBestellung = b.kBestellung
join tArticel a on a.kArtikel = p.tArtikel_kArtikel
join tStock l on l.kArtikel = a.kArtikel
where b.cAnmerkung LIKE '%HereItIs%'
and l.fLagerbestandEigen > 0
and SUBSTRING(b.cAnmerkung, CHARINDEX('HereItIs',b.cAnmerkung)+13 , 10) NOT LIKE '[A-Za-z]%'
我现在的问题是,我需要删除列“testFormat”。但是一旦我删除了这部分查询:
, replace(SUBSTRING(b.cAnmerkung, CHARINDEX('HereItIs',b.cAnmerkung)+13 , 10), '.', '/') as testFormat
我收到错误:
“将字符串转换为日期和/或时间时出错。”
有谁知道为什么当我在 select() 中有 replace() 时,同一个查询只将 varchar 转换为日期时间?
答: 暂无答案
下一个:基于时间值提取记录
评论
varchar