我有一个列,它以字符串格式存储日期,如(11/01/2010,2014-04-08,14-10月14日)。
我想把所有这种类型的字符串日期转换成日期时间/日期格式,比如(2014年12月16日下午3点40分),我正在尝试这样做
update #test set new_CHQ_DATE = CONVERT(varchar(20), CHQ_DATE, 105) where CHQ_DATE like '__/__/____'
update #test set new_CHQ_DATE = CONVERT(varchar(20), CHQ_DATE, 105) where CHQ_DATE like '____-__-__'
update #test set new_CHQ_DATE = CONVERT(varchar(20), CHQ_DATE, 105) where CHQ_DATE like '__-___-__'总线
发布于 2014-12-17 15:41:20
你的样本似乎有效,尽管它依赖于你提前知道人们可能已经进入日期的各种不同的方式。如果字符串基本上是任何正常的日期可识别格式,那么Server在将字符串转换为日期方面相当不错。这个查询似乎或多或少地都得到了(假设CHQ_DATE是某种类型的VARCHAR,而new_CHQ_DATE是一个DATETIME列):
SET DATEFORMAT dmy;
GO
UPDATE #Test
SET new_CHQ_DATE = CONVERT(VARCHAR(20), CHQ_DATE, 105)
WHERE
ISDATE(CHQ_DATE) = 1;
--reset DATEFORMAT back to whatever it washttps://stackoverflow.com/questions/27525299
复制相似问题